Разработчики программного обеспечения для автоматизации непрерывной интеграции / непрерывной доставки и развертывания с открытым исходным кодом (CI / CD) Jenkins устранили девять недостатков безопасности, включая критическую ошибку, которая при успешном использовании может привести к удаленному выполнению кода (RCE).
Проблема, которой присвоен идентификатор CVE CVE-2024-23897, была описана как уязвимость при произвольном чтении файла через встроенный интерфейс командной строки (CLI)
"Jenkins использует библиотеку args4j для анализа аргументов и опций команд на контроллере Jenkins при обработке команд CLI", - сказали разработчики в среду.
"Этот анализатор команд имеет функцию, которая заменяет символ @, за которым следует путь к файлу в аргументе, содержимым файла (expandAtFiles). Эта функция включена по умолчанию, и Jenkins 2.441 и более ранние версии, LTS 2.426.2 и более ранние версии ее не отключают."
Субъект угрозы может воспользоваться этой особенностью для чтения произвольных файлов в файловой системе контроллера Jenkins, используя кодировку символов по умолчанию процесса контроллера Jenkins.
В то время как злоумышленники с разрешением "Полный / Чтение" могут читать файлы целиком, те, у кого его нет, могут прочитать первые три строки файлов в зависимости от команд командной строки.
Кроме того, недостаток может быть использован для чтения двоичных файлов, содержащих криптографические ключи, хотя и с определенными ограничениями. По словам Дженкинса, при условии, что двоичные секреты могут быть извлечены, это может открыть дверь для различных атак. -
"Это, вероятно, приведет к тому, что некоторые байты не будут успешно прочитаны и будут заменены значением-заполнителем. Какие байты могут или не могут быть прочитаны, зависит от данной кодировки символов ".
Исследователю безопасности Яниву Низри приписывают обнаружение и сообщение об ошибке, которая была исправлена в Jenkins 2.442, LTS 2.426.3 путем отключения функции синтаксического анализа команд.
В качестве краткосрочного решения проблемы, пока исправление не будет применено, рекомендуется отключить доступ к командной строке.
Разработка началась почти через год после того, как Дженкинс устранил пару серьезных уязвимостей в системе безопасности, получивших название CorePlague (CVE-2023-27898 и CVE-2023-27905), которые могли привести к выполнению кода в целевых системах.
Проблема, которой присвоен идентификатор CVE CVE-2024-23897, была описана как уязвимость при произвольном чтении файла через встроенный интерфейс командной строки (CLI)
"Jenkins использует библиотеку args4j для анализа аргументов и опций команд на контроллере Jenkins при обработке команд CLI", - сказали разработчики в среду.
"Этот анализатор команд имеет функцию, которая заменяет символ @, за которым следует путь к файлу в аргументе, содержимым файла (expandAtFiles). Эта функция включена по умолчанию, и Jenkins 2.441 и более ранние версии, LTS 2.426.2 и более ранние версии ее не отключают."
Субъект угрозы может воспользоваться этой особенностью для чтения произвольных файлов в файловой системе контроллера Jenkins, используя кодировку символов по умолчанию процесса контроллера Jenkins.
В то время как злоумышленники с разрешением "Полный / Чтение" могут читать файлы целиком, те, у кого его нет, могут прочитать первые три строки файлов в зависимости от команд командной строки.
Кроме того, недостаток может быть использован для чтения двоичных файлов, содержащих криптографические ключи, хотя и с определенными ограничениями. По словам Дженкинса, при условии, что двоичные секреты могут быть извлечены, это может открыть дверь для различных атак. -
- Удаленное выполнение кода через корневые URL ресурсов
- Удаленное выполнение кода через файл cookie "Запомнить меня"
- Удаленное выполнение кода с помощью хранимых межсайтовых скриптов (XSS), атаки через журналы сборки
- Удаленное выполнение кода через обход защиты CSRF
- Расшифруйте секреты, хранящиеся в Jenkins
- Удалите любой элемент в Jenkins
- Загрузите дамп Java heap
"Это, вероятно, приведет к тому, что некоторые байты не будут успешно прочитаны и будут заменены значением-заполнителем. Какие байты могут или не могут быть прочитаны, зависит от данной кодировки символов ".
Исследователю безопасности Яниву Низри приписывают обнаружение и сообщение об ошибке, которая была исправлена в Jenkins 2.442, LTS 2.426.3 путем отключения функции синтаксического анализа команд.
В качестве краткосрочного решения проблемы, пока исправление не будет применено, рекомендуется отключить доступ к командной строке.
Разработка началась почти через год после того, как Дженкинс устранил пару серьезных уязвимостей в системе безопасности, получивших название CorePlague (CVE-2023-27898 и CVE-2023-27905), которые могли привести к выполнению кода в целевых системах.