Пользователям нужно срочно принять рекомендуемые меры защиты для сохранения контроля над системами.
Разработчик популярного открытого ПО для автоматизации CI/CD-процессов (Continuous Integration/Continuous Delivery) Jenkins исправил 9 уязвимостей в системе безопасности, включая одну критическую – CVE-2024-23897, которая приводит к удаленному выполнению кода (Remote Code Execution, RCE).
CVE-2024-23897 описана как уязвимость чтения произвольного файла через встроенный интерфейс командной строки (Jenkins CLI). Особенностью парсера команд, использующегося в Jenkins, является замена символа "@" на содержимое файла, если путь к файлу следует за этим символом в аргументе команды. Эта функция активирована по умолчанию в версиях Jenkins 2.441 и более ранних, а также в LTS 2.426.2 и более ранних, и до недавнего времени не была отключена.
Эксплуатация уязвимости позволяет злоумышленнику читать произвольные файлы в файловой системе контроллера Jenkins, используя стандартную кодировку символов процесса контроллера. При наличии у атакующего прав «Overall/Read» он может читать файлы целиком, а без таких прав – только первые 3 строки файлов в зависимости от команд CLI.
Кроме того, недостаток может быть использован для чтения бинарных файлов, содержащих криптографические ключи, хотя и с определенными ограничениями. Извлечение секретов открывает путь к различным атакам:
Исследователь безопасности из компании Checkmarx Янив Низри получил признание за обнаружение и сообщение об уязвимости, которая была устранена в версиях Jenkins 2.442 и LTS 2.426.3 путём отключения функции синтаксического анализа команд. В качестве временного решения, пока исправление не будет применено, рекомендуется отключить доступ к CLI.
Одно найти легче, чем другое. Спойлер: это не темная материя