В широко распространённом инструменте для поиска уязвимостей Nuclei, разработанном ProjectDiscovery, выявлена серьёзная уязвимость, которая позволяет злоумышленникам обходить проверки подписи и выполнять вредоносный код. Уязвимость получила идентификатор CVE-2024-43405 и оценку 7.4 из 10 по шкале CVSS. Она затрагивает все версии Nuclei, начиная с 3.0.0.
Проблема возникает из-за того, что проверка подписи и парсер YAML по-разному обрабатывают символы новой строки. В сочетании с тем, как система обрабатывает несколько подписей, злоумышленники получают возможность добавить вредоносный код в шаблоны, сохраняя при этом действительную подпись для безопасной части.
Nuclei используется для сканирования приложений, облачной инфраструктуры и сетей на наличие уязвимостей, применяя шаблоны на основе YAML. Уязвимость затрагивает процесс проверки целостности шаблонов, хранящихся в официальном репозитории, что делает возможным внедрение вредоносных данных с обходом проверки.
Исследователи компании Wiz обнаружили,что злоумышленники могут воспользоваться несовместимостью в обработке символов новой строки между регулярными выражениями и YAML-парсером. В частности, символ “r” может быть использован для обхода проверки подписи и исполнения кода парсером YAML.
Эксплуатация уязвимости позволяет злоумышленникам создать шаблон, включающий несколько строк с подписью “# digest:”, из которых проверяется только первая, а остальные игнорируются при проверке, но исполняются парсером. Кроме того, процесс исключения строки подписи выполняется некорректно, что также оставляет возможность для выполнения неподтверждённых данных.
ProjectDiscovery устранила уязвимость 4 сентября 2024 года в версии 3.3.2. Последняя версия Nuclei – 3.3.7. Пользователям настоятельно рекомендуется обновить программу до актуальной версии.
Исследователи установили, что уязвимость возникает в случаях, когда организации применяют общедоступные или непроверенные шаблоны без надлежащего аудита безопасности. Такая практика создает потенциальный вектор атаки для злоумышленников. Эксплуатация уязвимости может привести к выполнению произвольного кода, краже данных или компрометации системы.