Jenkins 插件沙箱绕过漏洞 (CVE-2019-1003000 、CVE-2019-1003001、 CVE-2019-1003002)

来源:scanv2019.02.15

一、漏洞概述

1、简介

      Jenkins[1]是一款由 Java 编写的开源的持续集成工具。在与 Oracle 发生争执后,项目从 Hudson 项目复刻。 Jenkins 提供了软件开发的持续集成服务。它运行在 Servlet 容器中。

      2019 年 1 月 8 日,Jenkins 发布安全公告[2],称 Jenkins 三个插件 Script Security,Pipeline: Groovy,Pipeline: Declarativ 存在沙箱绕过漏洞,分别分配CVE-2019-1003000,CVE-2019-1003001,CVE-2019-1003002。

      Script Security 沙箱保护可以在脚本编译阶段通过应用AST 转换注释(例如@Grab 源代码元素)来规避,管道验证 REST API 和实际脚本/管道执行都会受到影响。这允许具有“总体/读取”权限或能够控制 Jenkinsfile 或SCM 中的沙箱管道共享库内容的用户绕过沙箱保护并在 Jenkins 主服务器上执行任意代码。

      2019 年 2 月 15 日,Seebug 漏洞平台收录了该漏洞[3],知道创宇 404 实验室漏洞情报团队开始漏洞应急,复现并分析了该漏洞。

2、影响版本

Pipeline: Declarative 插件 <= 1.3.4

Pipeline: Groovy 插 件 <= 2.61

Script Security 插 件 <= 1.49

二、漏洞复现

1、复现环境

  • Jenkins130
  • Pipeline: Declarative3.1
  • Pipeline: Groovy54
  • Script Security44
  • 一个具有任务读取、配置、创建权限的用户

三、漏洞影响范围

     根据 ZoomEye 网络空间搜索引擎对关键字 "jenkins" 进行搜索[5],共得到 113 万条 IP 历史记录,主要分布在美国、俄罗斯、乌克兰等国家。

四、防护方案

1 、 更 新 插 件 至 已 修 复 版 本 :

      Pipeline: Declarative 1.3.4.1[6]

      Pipeline: Groovy 2.61.1[7]

      Script Security 1.50[8]

2、沙箱脚本中禁止 Groovy 中所有已知的不安全AST 转换

3、使用第三方防火墙进行防护(如创宇盾[https://www.yunaq.com/cyd/])

4、技术业务咨询

     知道创宇技术业务咨询热线 :

     400-060-9587(政府,国有企业)、028-68360638(互联网企业)

 

热门文章

关注知道创宇云安全

获取安全动态