必威国际有限公司2019-03-06

本报告公布了以下Jenkins可交付成果中的漏洞:必威国际有限公司

描述

沙箱绕过脚本安全插件

Security-1336(1)/ CVE-2019-1003029

通过提供制作的Groovy脚本,可以在解析,编译和脚本实例化期间绕过脚本安全沙箱保护。

脚本安全插件现在在这些阶段新增了沙箱保护。

这既影响脚本执行(通常从其他插件调用),也影响提供脚本验证的HTTP端点,并允许具有Overall/Read权限的用户绕过沙箱保护,在Jenkins控制器上执行任意代码。必威国际有限公司

API.GroovySandbox #运行(脚本,白名单)已弃用,现在发出警告系统日志有关潜在的安全问题。groovysandbox#运行(groovyshell,string,白名单)取代它。GroovyClassLoader GroovySandbox # checkScriptForCompilationErrors(字符串)作为更安全的方法来实现脚本验证。

管道中的沙箱绕过:Groovy插件

Security-1336(2)/ CVE-2019-1003030

管道:在解析、编译和脚本实例化期间,可以通过提供一个精心制作的Groovy脚本来规避Groovy沙箱保护。

这允许用户能够控制管道的内容,从而绕过沙箱保护并在Jenkins控制器上执行任意代码。必威国际有限公司

管道:Groovy插件现在使用脚本安全api,在这些阶段应用沙箱保护。

矩阵项目插件中的脚本安全沙箱旁路

安全- 1339 / cve - 2019 - 1003031

Matrix Project Plugin支持一个沙箱Groovy表达式来过滤矩阵组合。通过提供一个精心制作的Groovy脚本,可以在解析、编译和脚本实例化期间绕过它的沙箱保护。

这使得用户能够配置一个Matrix项目来绕过沙箱保护,并在Jenkins控制器上执行任意代码。必威国际有限公司

矩阵项目插件现在使用脚本安全api,在这些阶段应用沙箱保护。

脚本安全沙箱绕过电子邮件扩展插件

安全- 1340 / cve - 2019 - 1003032

Email Extension Plugin支持多个特性的沙箱Groovy表达式。通过提供一个精心制作的Groovy脚本,可以在解析、编译和脚本实例化期间绕过它的沙箱保护。

这使得用户能够控制插件的特定于作业的配置,从而绕过沙箱保护并在Jenkins控制器上执行任意代码。必威国际有限公司

Email扩展插件现在使用脚本安全api,在这些阶段应用沙箱保护。

在Groovy插件中绕过脚本安全沙箱

Security-1338 / CVE-2019-1003033

Groovy Plugin支持其“系统Groovy”功能的沙盒的Groovy表达式。通过提供一个精心制作的Groovy脚本,可以在解析、编译和脚本实例化期间绕过它的沙箱保护。

这既影响了System Groovy脚本的执行,也影响了提供脚本验证的HTTP端点,并允许具有Overall/Read权限的用户绕过沙箱保护,在Jenkins控制器上执行任意代码。必威国际有限公司

Groovy Plugin现在使用脚本安全api,在这些阶段应用沙箱保护。

Job DSL插件中的脚本安全沙箱旁路

安全- 1342 / cve - 2019 - 1003034

作业DSL插件支持用于作业DSL定义的沙箱Groovy表达式。通过提供一个精心制作的Groovy脚本,可以在解析、编译和脚本实例化期间绕过它的沙箱保护。

这使得用户能够控制Job DSL脚本,绕过沙箱保护并在Jenkins控制器上执行任意代码。必威国际有限公司

Job DSL插件现在使用在这些阶段期间使用Sandbox Protection的脚本安全API。

Azure VM Agents插件中的信息披露

Security-1330 / CVE-2019-1003035

Azure VM Agents中缺少的权限检查Azure VM Agents插件允许具有总体/读取访问的用户来验证提交的配置,获取有关Azure帐户和配置的有限信息。

此外,此表单验证方法不需要发布请求,从而导致潜在的CSRF漏洞。

这个表单验证方法现在需要POST请求和Overall/ administrtor权限。

在Azure VM代理插件中缺少权限检查允许修改VM配置

安全- 1331 / cve - 2019 - 1003036

HTTP端点中缺少的权限检查允许具有总体/读访问的用户在Azure VM Agents插件中将公共IP地址附加到Azure VM,使虚拟机可公开访问。

此外,这种表单验证方法不需要POST请求,因此会产生影响更有限的CSRF漏洞,因为IP地址是未知的。

这个表单验证方法现在需要POST请求和Overall/ administrtor权限。

具有总体/读访问权限的非特权用户能够在Azure VM代理插件中枚举凭据ID

Security-1332 / CVE-2019-1003037

Azure VM Agents Plugin提供了一个适用的凭证id列表,允许管理员配置插件来选择要使用的凭证id。

此功能未检查权限,允许任何具有总体/读取权限的用户获取有效凭据ID列表。那些可以用作攻击的一部分,以利用另一个漏洞捕获凭据。

此插件中的凭据ID的枚举现在需要总体/管理权限。

存储库连接器插件在纯文本中存储密码

安全- 958 / cve - 2019 - 1003038

存储库连接器插件在其在Jenkins控制器上的其全局配置文件中的配置中存储了用户名和密码。必威国际有限公司具有Jenkins控制器文件系统访问权限的用户可以查看这个密码。必威国际有限公司

插件现在将密码存储在磁盘上的配置文件中加密,并不将其传输给在纯文本中查看配置表单的用户。

AppDynamics Dashboard Plugin以明文形式存储密码

安全- 1087 / cve - 2019 - 1003039

AppDynamics Dashboard Plugin在配置中存储用户名和密码,未加密config . xmljenkins控制器上的文必威国际有限公司件。可以通过扩展读取权限的用户查看此密码,或访问Jenkins控制器文件系统。必威国际有限公司

使用密码表单字段从视图屏蔽时,在访问作业配置表单时,将在纯文本中以纯文本传输密码。

AppDynamics Dashboard Plugin现在将密码加密存储在磁盘上的配置文件中,不再将其传输给以明文形式查看配置表单的用户。为了覆盖现有明文密码,需要保存现有作业的配置。

Rabbit-MQ Publisher Plugin以明文形式存储密码

安全-848

Rabbit-MQ Publisher Plugin将用户名和密码存储在Jenkins控制器上的全局配置文件中,未加密。必威国际有限公司具有Jenkins控制器文件系统访问权限的用户可以查看这个密码。必威国际有限公司

插件现在将密码存储在磁盘上的配置文件中加密,并不将其传输给在纯文本中查看配置表单的用户。

缺少允许在Rabbit-MQ Publisher插件中连接到RabbitMQ的权限检查

安全- 970

缺少rabbit-mq发布者插件的表单验证方法的权限检查允许具有总体/读访问的用户与jenkins启动与攻击者指定的主机和端口的rabbitmq连接,以攻击者指定的用户名和密码。必威国际有限公司

此外,这种表单验证方法不需要POST请求,从而导致了CSRF漏洞。

这个表单验证方法现在需要POST请求和Overall/ administrtor权限。

Salesforce Commerce Cloud的OSF Builder套件::在纯文本中部署插件存储的密码

安全- 1038

OSF Builder Suite For Salesforce Commerce Cloud:: Deploy Plugin将HTTP代理用户名和密码存储在Jenkins控制器的全局配置文件中,未加密。必威国际有限公司具有Jenkins控制器文件系统访问权限的用户可以查看这个密码。必威国际有限公司

该插件现在集成了凭证插件来存储HTTP代理凭据。

Bitbar Run-in-Cloud中缺少权限检查导致SSRF和数据修改漏洞

安全-1088

缺少权限检查在方法执行表单验证和保存新配置Bitbar Run-in-Cloud插件允许用户与整体/读权限与attacker-specified詹金斯连接到一个attacker-specified主机证书,,如果成功,保存新配置的插件。必威国际有限公司这可能会导致将来的构建将其数据提交到未经授权的远程服务器。

此外,此方法不需要发布请求,从而导致CSRF漏洞。

这个表单验证方法现在需要POST请求和Overall/ administrtor权限。

严重程度

影响版本

  • Appdynamics仪表板插件最多包括1.0.14
  • Azure VM Agents插件最高及包括0.8.0
  • Bitbar Run-in-Cloud插件达到并包括2.69.1
  • 电子邮件扩展插件最多包括2.64
  • Groovy插件最高及包括2.1
  • 工作DSL插件最多包括1.71
  • 矩阵项目插件至1.13
  • OSF Builder Suite For Salesforce Commerce Cloud:: Deploy插件达到并包括1.0.10
  • 管道:Groovy插件最多包括2.63
  • Rabbit-MQ出版商插件直到并包括1.0
  • 库连接器插件达到并包括1.2.4
  • 脚本安全插件包括1.53

修复

  • Appdynamics仪表板插件应该更新到版本1.0.15
  • Azure VM Agents插件应该更新到0.8.1版本吗
  • Bitbar Run-in-Cloud插件应该更新到2.70.0版本吗
  • 电子邮件扩展插件应该更新到版本2.65
  • Groovy插件应该更新到2.2版本吗
  • 工作DSL插件应该更新到1.72版
  • 矩阵项目插件应该更新到1.14版本吗
  • OSF Builder Suite For Salesforce Commerce Cloud:: Deploy插件应该更新到1.0.11版本吗
  • 管道:Groovy插件应该更新到2.64版
  • Rabbit-MQ出版商插件应更新为1.2.0版
  • 库连接器插件应该更新到1.2.5版
  • 脚本安全插件应该更新到1.54版

这些版本包括修复上述漏洞。除非另有说明,否则所有先前版本都被认为受这些漏洞的影响。

信贷

Jenk必威国际有限公司ins项目要感谢记者发现和报告这些漏洞:

  • 丹尼尔·贝克(Daniel Beck), CloudBees公司对于Security-970,Security-1332
  • Georgy Noseevich(@WebPentest),SolidAb对于SECURITY-1336 (1), SECURITY-1336 (2)
  • Oleg Nenashev, CloudBees公司对于Security-1330,Security-1331
  • 维克多GazdagSECURITY-848, SECURITY-958, SECURITY-1038, SECURITY-1087, SECURITY-1088