Jenkins Plugins 多个清静误差危害通告

宣布时间 2020-02-14

误差编号和级别


CVE编号:CVE-2020-2116,危险级别:高危,CVSS分值:官方未评定

CVE编号:CVE-2020-2117,危险级别:高危,CVSS分值:官方未评定

CVE编号:CVE-2020-2109,危险级别:高危,CVSS分值:官方未评定

CVE编号:CVE-2020-2110,危险级别:高危,CVSS分值:官方未评定

CVE编号:CVE-2020-2121,危险级别:高危,CVSS分值:官方未评定

CVE编号:CVE-2020-2123,危险级别:高危,CVSS分值:官方未评定

CVE编号:CVE-2020-2120,危险级别:高危,CVSS分值:官方未评定

CVE编号:CVE-2020-2115,危险级别:高危,CVSS分值:官方未评定


影响版本


Applatix Plugin <= 1.1,Azure AD Plugin <= 1.1.2,BMC Release Package and Deployment Plugin <= 1.1,Brakeman Plugin <= 0.12,Debian Package Builder Plugin <= 1.6.11,DigitalOcean Plugin <= 1.1,Dynamic Extended Choice Parameter Plugin <= 1.0.1,Eagle Tester Plugin <= 1.0.9,ECX Copy Data Management Plugin <= 1.9,FitNesse Plugin <= 1.30,Git Parameter Plugin <= 0.9.11,Google Kubernetes Engine Plugin <= 0.8.0,Harvest SCM Plugin <= 0.5.1,NUnit Plugin <= 0.25,Parasoft Environment Manager Plugin <= 2.14,Pipeline GitHub Notify Step Plugin <= 1.0.4,Pipeline: Groovy Plugin <= 2.78,RadarGun Plugin <= 1.7,S3 publisher Plugin <= 0.11.4,Script Security Plugin <= 1.69,Subversion Plugin <= 2.13.0


误差概述


CloudBees Jenkins(Hudson Labs)是美国CloudBees公司的一套基于Java开发的一连集成工具。该产品主要用于监控一连的软件版本宣布/测试项目和一些准时执行的使命。


克日,Jenkins宣布官方清静通告,Jenkins部分插件保存多个误差,涉及到如下清静问题:沙箱绕过,XSS误差,纯文本名堂传输,XXE,CSRF,缺少权限检查,枚举凭证ID,RCE,XSS,纯文本名堂存储密码,其中高危误差概述如下:


Pipeline GitHub Notify Step插件中的CSRF误差和缺少权限检查允许捕获凭证,CVE-2020-2116 (CSRF)/CVE-2020-2117(缺少权限检查)


Pipeline GitHub Notify Step Plugin 1.0.4和更早版本差池实现表单验证的要领执行权限检查。这允许对Jenkins具有周全/读取会见权限的用户使用通过另一种要领获得的攻击者指定的凭证id毗连到攻击者指定的URL,从而捕获Jenkins中存储的凭证。


别的,表单验证要领不需要POST请求,从而导致CSRF误差。


通过管道中的默认要领参数表达式绕过沙盒:Groovy插件,CVE-2020-2109


管道中的沙盒掩护:Groovy插件2.78及更早版本可以通过CPS转换要领中的默认参数表达式来规避。这使得攻击者能够指定并运行沙盒管道,以便在Jenkins主JVM的上下文中执行恣意代码。


Script Security插件中的沙盒绕过误差,CVE-2020-2110


Script Security插件1.69及更早版本中的沙盒掩护可以在剧本编译阶段通过将AST转换注释(如@Grab)应用于导入或在其他注释中使用它们来规避。这会影响剧本执行(通常从其他插件(如管道)挪用)以及提供沙盒剧本验证的HTTP端点。

具有全局/读取权限的用户可以使用此误差绕过沙盒掩护,并在Jenkins主机上执行恣意代码。


Google Kubernetes Engine插件中的RCE误差,CVE-2020-2121


Google Kubernetes Engine插件0.8.0和更早版本没有设置其YAML剖析器来避免恣意类型的实例化。这导致一个远程代码执行误差,用户可以使用该误差向Google Kubernetes Engine插件的构建办法提供YAML输入文件。


RadarGun插件中的RCE误差,CVE-2020-2123


RadarGun插件1.7及更早版本没有设置其YAML剖析器以避免恣意类型的实例化。这会导致远程代码执行误差被能够设置RadarGun插件的天生办法的用户使用。


FitNesse插件中的XXE误差,CVE-2020-2120


FitNesse插件1.30及更早版本没有设置XML剖析器以避免XML外部实体(XXE)攻击。


这允许用户控制厥后期天生办法的输入文件,让Jenkins剖析一个全心体例的文件,该文件使用外部实体从Jenkins主机提取神秘、服务器端请求伪造或拒绝服务攻击。


NUnit插件中的XXE误差,CVE-2020-2115


NUnit插件0.25及更早版本没有设置XML剖析器以避免XML外部实体(XXE)攻击。


这允许用户控制厥后期天生办法的输入文件,让Jenkins剖析一个全心体例的文件,该文件使用外部实体从Jenkins主机提取神秘、服务器端请求伪造或拒绝服务攻击。


误差验证


暂无POC/EXP。


修复建议


现在部分插件已更新,获取链接:https://jenkins.io/security/advisory/2020-02-12/。请实时更新插件到如下版本:


Azure AD Plugin 更新至 1.2.0

Brakeman Plugin 更新至 0.13

FitNesse Plugin 更新至 1.31

Git Parameter Plugin 更新至 0.9.12

Google Kubernetes Engine Plugin 更新至 0.8.1

NUnit Plugin 更新至 0.26

Pipeline GitHub Notify Step Plugin 更新至 1.0.5

Pipeline: Groovy Plugin 更新至 2.79

RadarGun Plugin 更新至 1.8

S3 publisher Plugin 更新至 0.11.5

Script Security Plugin 更新至 1.70

Subversion Plugin 更新至 2.13.1


以下插件暂未修复:


Applatix Plugin

BMC Release Package and Deployment Plugin

Debian Package Builder Plugin

DigitalOcean Plugin

Dynamic Extended Choice Parameter Plugin

Eagle Tester Plugin

ECX Copy Data Management Plugin

Harvest SCM Plugin

Parasoft Environment Manager Plugin


参考链接


https://jenkins.io/security/advisory/2020-02-12/