Введение
Jenkins — это широко используемый инструмент для автоматизации задач, таких как сборка, тестирование и развёртывание программного обеспечения. Он является важной частью процесса разработки во многих организациях. Если злоумышленник получает доступ к серверу Jenkins, это может привести к серьёзным последствиям, таким как кража учетных данных, манипуляции с кодом или даже срыв процессов развёртывания. Доступ к Jenkins предоставляет злоумышленнику возможность вмешаться в программный конвейер, что может привести к хаосу в процессе разработки и компрометации конфиденциальных данных.
В этой статье мы рассмотрим консультативное заключение по уязвимости CVE-2024-43044, которая представляет собой уязвимость, связанную с произвольным чтением файлов в Jenkins. Мы покажем, как можно использовать эту уязвимость для эскалации привилегий с целью достижения удалённого выполнения кода (RCE) на контроллере Jenkins при захвате агента Jenkins.
Обзор архитектуры Jenkins
Архитектура Jenkins основана на модели «контроллер-агенты», где контроллер Jenkins является основным узлом в установке Jenkins. Контроллер управляет агентами Jenkins и координирует их работу, включая планирование задач на агентах и мониторинг их состояния [3]. Взаимодействие между контроллером и агентами может происходить через Inbound-соединение (ранее известное как «JNLP») или SSH.
Все статьи подряд / Информационная безопасность / Хабр