近日,国家信息安全漏洞共享平台(CNVD)收录了Jenkins存在的多个漏洞(CNVD-2017-05551、CNVD-2017-05570、CNVD-2017-05571、CNVD-2017-05572分别对应CVE-2017-1000353、CVE-2017-1000354、CVE-2017-1000355、CVE-2017-1000356)。攻击者利用上述漏洞,可在受影响的应用程序的上下文中执行任意代码、冒充Jenkins用户或造成Jenkins服务器拒绝服务等威胁。

一、漏洞情况分析

Jenkins是一个开源软件项目,基于Java开发的一种持续集成工具,用于监控持续重复的工作。Jenkins CLI工具允许用户通过命令行来操作Jenkins。2017年4月27日,软件集成平台Jenkins官方发布了安全通告,包含了更新修复程序,修复了4个安全漏洞,详细情况如下:

漏洞名称

漏洞描述

漏洞评级

Jenkins Java反序列化漏洞(CNVD-2017-05551、CVE-2017-1000353)

Jenkins存在未经身份验证的远程代码执行漏洞,经过序列化的Java SignedObject对象传输到基于远程处理的Jenkins CLI,在使用新的对象ObjectInputStream对其进行反序列化操作即可绕过现有的基于黑名单的保护机制。远程攻击者可利用漏洞在受影响的应用程序的上下文中执行任意代码,或造成程序拒绝服务。

高危

Jenkins 用户登录信息泄露漏洞(CNVD-2017-05570、CVE-2017-1000354)

远程CLI将之前通过验证的用户的加密登录信息储存在一个缓存文件中,这些信息可用来验证进一步的命令。拥有在Jenkins创建秘密权限的用户可以用此漏洞来冒充任何一个在同样实例下的其他Jenkins用户。

中危

Jenkins拒绝服务漏洞(CNVD-2017-05571、CVE-2017-1000355)

Jenkins使用XStream库来序列化和反序列化XML,任何能够向Jenkins提供XML并使用XStream的用户都可以使Java进程崩溃。Jenkins中,这通常适用于有权创建或配置项目(作业),视图或代理的用户。

高危

Jenkins CSRF(CNVD-2017-05572、CVE-2017-1000356)

Jenkins包含多个CSRF漏洞(跨站请求伪造),可使Jenkins立刻或延时重启,删除所有配置的更新站点,安装和加载任何在配置的更新站点上可用的插件,更改Jenkins系统,安全和工具配置,或创建新的代理等。

中危

二、漏洞影响范围

漏洞影响Jenkins 2.56 及以前的版本 、Jenkins LTS 2.46.1 及以前的版本。根据CNVD秘书处普查情况,互联网上共有20600台服务器主机使用jenkins框架,其中排名前五名的国家和地区是:美国(占比58.0%)、德国(7.2%)、英国(4.4%)、荷兰(4.4%)、法国(3.5%);中国排名第六,占比约3.1%。

三、防护建议:

厂商已修复上述漏洞,并将SignedObject添加到远程黑名单中。请及时升级到以下对应版本:Jenkins LTS 2.46.2和Jenkins 2.57。在Jenkins 2.54中,基于远程处理的CLI协议已被弃用,除了现有的基于SSH的CLI之外,还引入了一种基于HTTP的协议作为新的默认协议。此功能已在Jenkins 2.46.2中实现,建议用户升级Jenkins,禁用基于远程处理的CLI,并使用其他处理模式(HTTP或SSH)。

附:参考链接:

https://jenkins.io/security/advisory/2017-04-26/

http://www.securityfocus.com/bid/98056/info

http://www.cnvd.org.cn/flaw/show/CNVD-2017-05551

http://www.cnvd.org.cn/flaw/show/CNVD-2017-05570

http://www.cnvd.org.cn/flaw/show/CNVD-2017-05571

http://www.cnvd.org.cn/flaw/show/CNVD-2017-05572