微慑信息网

Jenkins 远程代码执行漏洞(CVE-2019-1003000)[附POC]

#

事件描述

一、安全预警

2019年1月8日,Jenkins官方发布了一则Script Security and Pipeline 插件远程代码执行漏洞的安全公告,漏洞CVE编号为:CVE-2019-1003000,官方定级为高危。2019年2月15日,网上公布了该漏洞的利用方式,该漏洞允许具有“Overall/Read”权限的用户或能够控制SCM中的Jenkinsfile或者sandboxed Pipeline共享库内容的用户绕过沙盒保护并在Jenkins主服务器上执行任意代码。

深信服安全团队第一时间响应并发布预警信息,并将持续跟踪事态进展。

深信服安全团队风险评级:高危

二、事件概要

Snipaste_2019-02-17_14-54-18.png

三、事件分析

3.1 Jenkins产品介绍

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins的目的是持续、自动地构建/测试软件项目以及监控软件开放流程,快速问题定位及处理,提示开放效率。

Script Security and Pipeline 插件是Jenkins的一个安全插件,可以集成到Jenkins各种功能插件中。它主要支持两个相关系统:脚本批准和Groovy沙盒。

3.2漏洞分析

该漏洞存在于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主服务器上执行任意代码。

3.3漏洞复现

我们通过一个攻击案例直观地了解一下漏洞的影响.

首先我们搭建一个装有2.152-alpine的jenkins运行环境

图片1.png登录后建立一个job,尝试攻击

图片2.png攻击步骤

1. 连接jenkins

2. 制作payload,

3. 将payload的载荷修改到job中

4.将job构建到消息队列中

5.等待job建立成功一系列操作

图片3.png这是jenkins日志显示执行成功

图片4.png四、影响范围

目前受影响的Jenkins插件版本:

Declarative Plugin < 1.3.4.1

Groovy Plugin < 2.61.1

Script Security Plugin < 1.5.0

五、参考链接

https://jenkins.io/security/advisory/2019-01-08/

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-1003000

解决方案

产品解决方案

深信服下一代防火墙可轻松防御此漏洞,建议部署深信服下一代防火墙的用户开启安全防护规则,可轻松抵御此高危风险。

修复建议

Jenkins官方已经针对该漏洞发布了修复CVE-2019-1003000的安全更新:

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

赞(0) 打赏
转载请附本站链接,未经允许不得转载,,谢谢:微慑信息网-VulSee.com » Jenkins 远程代码执行漏洞(CVE-2019-1003000)[附POC]

评论 抢沙发

微慑信息网 专注工匠精神

微慑信息网-VulSee.com-关注前沿安全态势,聚合网络安全漏洞信息,分享安全文档案例

访问我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册