13 подписчиков
🛡️ Уязвимость в Jenkins: произвольное чтение файлов (CVE-2024-43044) 🛡️
Команда разработчиков Jenkins опубликовала заключение (SECURITY-3430 / CVE-2024-43044), в котором описана уязвимость, позволяющая агентам получать доступ к файлам на контроллере Jenkins. Проблема кроется в механизме передачи JAR-файлов от контроллера к агентам. Как выяснилось, реализация метода ClassLoaderProxy#fetchJar на контроллере не ограничивает доступные пути, что позволяет агентам запрашивать любые файлы с файловой системы контроллера.
📂 Эксплуатация уязвимости
Эксплойт использует доступ к классу hudson.remoting.RemoteClassLoader, который отвечает за загрузку классов через удалённые узлы. Агенты могут воспользоваться этой уязвимостью через fetchJar, что даёт им возможность удалённого выполнения кода (RCE) или получения доступа к конфиденциальным данным.
🔧 Патч и защита
Для устранения уязвимости разработчики ввели валидатор и несколько системных свойств Java. Например:
- jenkins.security.s2m.JarURLValidatorImpl.REJECT_ALL — блокирует любые попытки загрузки JAR-файлов.
- hudson.remoting.Channel.DISABLE_JAR_URL_VALIDATOR — отключает проверку валидности URL.
Валидатор проверяет, соответствует ли запрашиваемый JAR-файл допустимым плагинам или файлам ядра. Полный текст изменений можно найти в репозитории Jenkins на GitHub.
⚠️ Риски и эксплуатация
Для реализации атаки злоумышленнику потребуется доступ к агентам Jenkins. Это может быть достигнуто через компрометированные учетные данные или прямое подключение к процессам агента.
Способы эксплуатации включают:
- Использование секрета агента для подключения к контроллеру Jenkins;
- Подключение к уже работающему процессу Remoting через Java API.
Этот недостаток также может быть использован для получения удалённого выполнения кода (RCE), что подтверждается ещё одной рекомендацией, выпущенной ранее в 2024 году. Подробнее о RCE можно прочитать в отчёте CVE-2024-47176.
#кибербезопасность #SecureTechTalks #Jenkins #уязвимость #информационнаябезопасность #CVE2024
1 минута
13 октября 2024