Специалисты компании Wiz выявили серьезную уязвимость CVE-2024-43405 в популярном инструменте Nuclei, которая позволяет злоумышленникам обходить механизм проверки подписи шаблонов и выполнять произвольный код на целевых системах. Уязвимость получила оценку 7,4 балла по шкале CVSS, что указывает на высокий уровень опасности.
Механизм работы Nuclei и обнаруженная уязвимость
Nuclei представляет собой открытый инструмент для сканирования безопасности, разработанный ProjectDiscovery. Система использует более 10 000 YAML-шаблонов для поиска уязвимостей, ошибок конфигурации и других проблем безопасности в веб-приложениях, облачных платформах и сетевой инфраструктуре.
Технические детали уязвимости
Проблема возникает из-за несоответствия в обработке переносов строк между регулярными выражениями Go и YAML-парсером. В то время как Go интерпретирует \r как часть строки, YAML-парсер распознает его как разделитель строк. Это расхождение позволяет внедрять вредоносный код, который успешно обходит систему проверки подписей шаблонов.
Множественные векторы атаки
Исследователи обнаружили дополнительную уязвимость в механизме обработки директив # digest:. Nuclei проверяет только первое значение digest в файле, игнорируя последующие. Злоумышленники могут использовать эту особенность для внедрения вредоносного кода после легитимной подписи, который будет выполнен при обработке шаблона.
Кого затрагивает уязвимость
Под угрозой находятся следующие группы пользователей:
- Специалисты по безопасности и пентестеры, использующие Nuclei версий до 3.3.2 для сканирования веб-приложений и инфраструктуры
- Команды DevSecOps, встроившие Nuclei в CI/CD-пайплайны для автоматизированного сканирования уязвимостей
- Организации, использующие шаблоны Nuclei из сторонних источников — именно через подменённые шаблоны реализуется основной вектор атаки
- Bug bounty-платформы и пентест-компании, запускающие Nuclei от привилегированных учётных записей без изоляции
Меры защиты и рекомендации
ProjectDiscovery выпустила исправление в версии 3.3.2. Специалисты по безопасности настоятельно рекомендуют:
- Немедленно обновить Nuclei до версии 3.3.2 или выше:
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest - Запускать Nuclei только в изолированных средах или виртуальных машинах — никогда с правами root или администратора на продуктивных системах
- Использовать исключительно официальный репозиторий шаблонов projectdiscovery/nuclei-templates и проверять хэши перед запуском кастомных шаблонов
- Регулярно проверять обновления безопасности ProjectDiscovery и подписаться на их GitHub-уведомления
- Провести аудит систем, на которых запускался Nuclei с версиями до 3.3.2, на предмет несанкционированного выполнения кода