В популярном опенсорсном сканере уязвимостей Nuclei обнаружена и исправлена уязвимость, которая позволяла злоумышленникам обходить проверку подписи и внедрять вредоносный код в шаблоны, работающие в локальных системах.

Nuclei представляет собой сканер уязвимостей с открытым исходным кодом, разработанный ProjectDiscovery. Он используется для сканирования сайтов, облачных платформ, инфраструктур и сетей в поисках уязвимостей и других слабых мест. При этом система сканирования строится основе шаблонов и предлагает более 10 000 YAML-шаблонов, проверяющих ресурсы на предмет известных багов, неправильных конфигураций, незащищенных файлов, веб-шеллов, бэкдоров и так далее.

Такие YAML-шаблоны могут использоваться для локального выполнения команд или скриптов на устройстве (для расширения их функциональности). Каждый шаблон «подписан» и Nuclei использует эту подпись для проверки того, что шаблон не был изменен и не содержит вредоносного кода. Специальный хеш для этого добавляется в конец шаблона в формате: # digest: <hash>.

Исследователи из компании Wiz обнаружили уязвимость в Nuclei (CVE-2024-43405, 7,4 балла по шкале CVSS), которая позволяла обойти описанную проверку, даже если шаблон из официального репозитория был изменен и содержит вредоносный код.

Проблема связана с использованием регулярных выражений Go и тем, как парсер YAML обрабатывает переносы строк при проверке подписи. Так, в логике Go \r рассматривается как часть одной строки. Однако парсер YAML интерпретирует это как разрыв строки. В итоге это несоответствие позволяет внедрять в шаблоны вредоносное содержимое, которое обходит проверки и выполняется при обработке парсером YAML.

Еще одна проблема заключается в том, как Nuclei обрабатывает несколько строк # digest:. Оказалось, что проверяется только первое значение # digest: в шаблоне, а все дополнительные, встречающиеся после, игнорируются, хотя пригодны для анализа и выполнения.

Этим тоже могут злоупотреблять злоумышленники, добавляя дополнительные вредоносные # digest: и полезные нагрузки после первоначального # digest:. Они могут содержать вредоносный раздел code, который затем будет выполнен при использовании шаблона.

Разработчики ProjectDiscovery устранили эти проблемы 4 сентября 2024 года, в составе Nuclei версии 3.3.2.

Теперь всем пользователям старых версий Nuclei настоятельно рекомендуется обновиться. Также исследователи отмечают, что использовать Nuclei лучше на виртуальной машине или в изолированной среде, чтобы предотвратить потенциальные атаки через вредоносные шаблоны.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    1 Комментарий
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии