本周早些时候,开源自动化服务器软件Jenkins发布了安全指南,以修补Jetty Web服务器上的一个严重漏洞。如果利用此漏洞,则可能导致内存溢出和机密信息泄漏。
该漏洞在CVSS漏洞评估系统(CVE-2019-17638)上得分为9.4,并且影响从9.4.27.v20200227到9.4.29.v20200521的Eclipse Jetty版本。Eclipse Jetty是一个功能丰富的工具,它提供Java HTTP服务器和Web容器供在软件框架中使用。
“ Jenkins捆绑了围绕Jetty的包装类Winstone-Jetty,并在开始使用java-jar jenkins.war时充当HTTP服务器和servlet。这是Jenkins通常在使用好的安装程序时运行的方式。手册指出:”,但不是使用Tomcat之类的servlet容器时的运行方式。
“此漏洞可能允许未经身份验证的攻击者从用户请求接收HTTP响应标头,并访问其敏感数据。”
从Jetty 9.4.27开始,影响Jetty和Jenkins Core 的漏洞似乎已经存在。已知此版本已添加一种机制来处理HTTP响应标头并防止缓存溢出。
Jetty项目负责人Greg Wilkins说:“这是缓冲区溢出,我们已经释放了头缓冲区,但是还没有修复null字段。”
为了对此问题进行如下解释,Jetty发出了一个异常以生成HTTP错误431。此错误导致HTTP响应标头两次进入缓冲区,进而导致内存溢出和信息泄漏。
由于响应头发出了两次,因此这两个线程将从缓冲区同时接收相同的缓冲区。这导致在发送请求时,两个线程之一可以访问另一个线程的响应,并允许攻击者访问会话ID,凭据和更敏感的信息。其他用户的感受。
换句话说,“当线程1将要使用ByteBuffer写入response1数据时,线程2将ByteBuffer填充为response2数据。然后,线程1继续写入当前包含response2数据的缓冲区。这导致client1。 ,后者发出request1并等待response1,然后接收response2,其中可能包含client2的敏感数据。”
此内存错误导致客户端在会话之间切换。由于一个用户的响应中的身份验证cookie发送到了另一个帐户,因此它使他们可以访问多个帐户,从而允许用户A切换到用户B的会话。
在发现安全问题后,该漏洞已在上个月发布的Jetty版本9.4.30.v20200611中得到解决。此外,通过命令行界面Winstone的 Jetty软件包Jenkins 还使用昨天发布的Jenkins 2.243版和Jenkins LTS 2.235.5对其实用程序进行了修补。
安全专家建议Jenkins用户立即将软件更新到最新版本,以将可能的风险降至最低。
上一条: 科技企业的10个流行域名扩展