Apache Tomcat被曝重大漏洞,影响过去13年的所有版本

近日,国内安全公司长亭科技披露一个在 Tomcat中潜伏十多年的安全漏洞——Ghostcat (幽灵猫),其编号为CVE-2020-1938

据悉,Ghostcat(幽灵猫)由长亭科技安全研究员发现,它是存在于Tomcat中的安全漏洞。

由于 Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件,例如可以读取 webapp 配置文件或源代码。

Tomcat Connector 是 Tomcat 与外部连接的通道,它使得 Catalina 能够接收来自外部的请求,传递给对应的 Web 应用程序处理,并返回请求的响应结果。默认情况下,Tomcat 配置了两个 Connector,它们分别是 HTTP Connector 和 AJP Connector。

并且,在目标应用有文件上传功能的情况下,配合文件包含的利用还可以达到远程代码执行的危害。

影响过去13年所有Apache Tomcat版本

众所周知,Java 是目前 Web 开发中最主流的编程语言,而Tomcat 是当前最流行的 Java 中间件服务器之一,从初版发布到现在已有二十多年历史,在世界范围内被广泛使用。

据长亭科技官方介绍,这个漏洞影响全版本默认配置下的Tomcat(已确认影响Tomcat 9/8/7/6全版本),这意味着Ghostcat在Tomcat中潜伏十多年。

“通过Ghostcat漏洞,攻击者可以读取 Tomcat所有 webapp目录下的任意文件。”长亭科技在博客上写道。

此外,如果网站应用提供文件上传的功能,攻击者能先向服务端上传一个内容含有恶意 JSP 脚本代码的文件(上传的文件本身可以是任意类型的文件,比如图片、纯文本文件等),然后利用 Ghostcat 漏洞进行文件包含,从而达到代码执行的危害。

下列版本的Tomcat受Ghostcat漏洞影响:

  • Apache Tomcat 9.x < 9.0.31
  • Apache Tomcat 8.x < 8.5.51
  • Apache Tomcat 7.x < 7.0.100
  • Apache Tomcat 6.x

修复漏洞

长亭科技提示:对于处在漏洞影响版本范围内的 Tomcat 而言,若其开启 AJP Connector 且攻击者能够访问 AJP Connector 服务端口的情况下,即存在被 Ghostcat 漏洞利用的风险。

并且,Tomcat AJP Connector 默认配置下即为开启状态,且监听在 0.0.0.0:8009。

要正确修复Ghostcat 漏洞,首先要确定服务器环境中是否有用到 Tomcat AJP 协议:

  • 如果未使用集群或反向代理,则基本上可以确定没有用到 AJP;
  • 如果使用了集群或反向代理,则需要看集群或反代服务器是否与 Tomcat 服务器 AJP 进行通信

早在1月初,长亭科技向 Apache Tomcat 官方提交漏洞。

目前,Tomcat官方已经发布9.0.31、8.5.51 及 7.0.100 版本针对此漏洞进行修复。因此,建议Tomcat用户尽快升级到最新版本。

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/CyeCTLTTqWT2QJkuLEh3
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券