Jenkins修复多个安全漏洞安全通告
发布时间 2018-07-25CVE-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/。
远程且未经授权的攻击者可以通过构造恶意登录凭证,从Jenkins 主目录下移除 config.xml 配置文件到其他目录,从而导致 Jenkins 服务下次重启时退回 legacy 模式,对匿名用户也会开放管理员权限,如下图所示:
此漏洞利用的条件是需要等待 Jenkins 服务的重启。
如果在利用此问题后Jenkins已经关闭,则可以在Jenkins主目录中的users/$002e$002e/config.xml中找到config.xml文件。
Jenkins 使用的 Stapler Web 框架存在任意文件读取漏洞。攻击者在远程且未经授权的情况下,可以通过构造恶意的 HTTP 请求发往 Jenkins Web 服务端,从请求响应中直接获取攻击者指定读取的文件内容。
测试发现此漏洞的利用需要开启匿名用户访问权限(测试版本为 Jenkins LTS 2.121.1)。
Stapler中的输入验证已得到改进,以防止这种情况发生。
处理排队构建取消的URL未执行权限检查,允许具有“总体/读取”权限的用户取消排队构建。
处理排队构建的取消的URL现在确保用户具有项目/取消权限。
在Jenkins主服务器上启动代理启动的URL未执行权限检查,允许具有“总体/读取”权限的用户启动代理启动。
这样做取消了指定代理程序的所有正在进行的启动,因此这允许攻击者阻止代理无限期启动。
现在,代理启动的URL可确保用户具有“代理/连接”权限。
在像/ view / ... / builds这样的URL上显示的构建时间线小部件没有正确地转义项目的显示名称。这导致了能够控制项目显示名称的用户可利用的跨站点脚本漏洞。
Jenkins现在转义时间线小部件上显示的作业显示名称。
指示何时将插件JPI文件最后提取到Jenkins主目录中的插件/子目录中的文件可由具有总体/读取权限的用户通过HTTP访问。这允许未经授权的用户确定给定插件的可能安装日期。
受影响的文件不再通过HTTP提供。
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


京公网安备11010802024551号