Jenkins建复多个安全缝隙安全公告

颁布功夫 2018-07-25
缝隙编号和级别
CVE-2018-1999001  厂商自评:高  CVSS分值:官方未评定
CVE-2018-1999002  厂商自评:高  CVSS分值:官方未评定
CVE-2018-1999003  厂商自评:中  CVSS分值:官方未评定
CVE-2018-1999004  厂商自评:中  CVSS分值:官方未评定
CVE-2018-1999005  厂商自评:中  CVSS分值:官方未评定
CVE-2018-1999006  厂商自评:中  CVSS分值:官方未评定

CVE-2018-1999007  厂商自评:中  CVSS分值:官方未评定


影响版本

Jenkins weekly 2.132 以及更早的版本

Jenkins LTS 2.121.1 以及更早的版本


缝隙概述
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续沉复的工作,旨在提供一个盛开易用的软件平台,使软件的持续集成造成可能。

Jenkins 官方在 7 月 18 号颁布了安全资讯,对两个高危和5个中级缝隙进行公告: https://jenkins.io/security/advisory/2018-07-18/。


CVE-2018-1999001配置文件蹊径扭转导致治理员权限盛开缝隙
远程且未经授权的攻击者能够通过机关恶意登录凭证,从Jenkins 主目录下移除 config.xml 配置文件到其他目录,从而导致 Jenkins 服务下次沉启时退回 legacy 模式,对匿名用户也会盛开治理员权限,如下图所示:

 

宝运莱·(中国区)最新官方网站


此缝隙利用的前提是必要期待 Jenkins 服务的沉启。


为了缓解此问题,我们强烈建议没有此建复法式的Jenkins事俘的治理员能够由不受信赖的用户接见,在关关Jenkins之前不久保留全局配置。这样做会将当前配置从内存写入config.xml文件,该文件仅在启动时或沉新加载配置时读取。

若是在利用此问题后Jenkins已经关关,则能够在Jenkins主目录中的users/$002e$002e/config.xml中找到config.xml文件。


CVE-2018-1999002肆意文件读取缝隙

Jenkins 使用的 Stapler Web 框架存在肆意文件读取缝隙。攻击者在远程且未经授权的情况下,能够通过机关恶意的 HTTP 要求发往 Jenkins Web 服务端,从要求响应中直接获取攻击者指定读取的文件内容。


从官方提交的安全测试补丁中,能够看出,此缝隙是在 HTTP 要求头 Accept-Language 中进行恶意数据机关,并重要针对 Windows 系统(在 Linux 系统上利用则必要满足特定前提):

 

宝运莱·(中国区)最新官方网站


测试发现此缝隙的利用必要开启匿名用户接见权限(测试版本为 Jenkins LTS 2.121.1)。

Stapler中的输入验证已得到改进,以预防这种情况产生。


CVE-2018-1999003未经授权的用户能够取缔列队的构建
处置列队构建取缔的URL未执行权限查抄,允许具佑装总体/读取”权限的用户取缔列队构建。

处置列队构建的取缔的URL此刻确保用户拥有项目/取缔权限。


CVE-2018-1999004未经授权的用户能够启动和遏制代理启动
在Jenkins主服务器上启动代理启动的URL未执行权限查抄,允许具佑装总体/读取”权限的用户启动代理启动。
这样做取缔了指定代理法式的所有在进行的启动,因而这允许攻击者阻止代理无期限启动。

此刻,代理启动的URL可确保用户具佑装代理/衔接”权限。


CVE-2018-1999005存储的XSS缝隙
在像/ view / ... / builds这样的URL上显示的构建功夫线幼部件没有正确地转义项主张显示名称。这导致了可能节造项目显示名称的用户可利用的跨站点剧本缝隙。

Jenkins此刻转义功夫线幼部件上显示的作业显示名称。


CVE-2018-1999006未经授权的用户能够确定何时从其JPI包中提取插件
批示何时将插件JPI文件最后提取到Jenkins主目录中的插件/子目录中的文件可由拥有总体/读取权限的用户通过HTTP接见。这允许未经授权的用户确定给定插件的可能装置日期。

受影响的文件不再通过HTTP提供。


CVE-2018-1999007 Stapler调试模式下的XSS缝隙
Stapler是Jenkins用于路由HTTP要求的Web框架。启用其调试模式后,HTTP 404谬误页面将显示诊断信息。这些谬误页面没有逃避它们显示的部门URL,在极少数情况下会导致跨站点剧本缝隙。
此刻能够正确转义这些谬误页面上显示的部门URL。

作为解决步骤,不应在Stapler调试模式下对不受信赖的用户可接见的事俘启用Stapler调试模式。


建复建议:
用户应实时升级进行防护:
Jenkins weekly 升级到 2.133 版本

Jenkins LTS 升级到 2.121.2 版本


参考链接:
https://jenkins.io/security/advisory/2018-07-18/
https://github.com/jenkinsci/jenkins/commit/d71ac6ffe98ee62e0353af7a948a4ae1a69b67e9