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