背景

Apache Tomcat 是由 Apache 软件基金会下 Jakarta 项目开发的 Servlet 容器。在默认情况下,Apache Tomcat 会开启 AJP 连接器,便于与其他Web服务器通过AJP协议进行数据传输。

由于 Apache Tomcat AJP 协议的缺陷,攻击者可以通过 Tomcat AJP Connector 读取含 Apache Tomcat 在内其下所有 webapp 目录下的任何文件,因此攻击者可以读取 webapp 配置文件或源代码。如果目标应用支持文件上传功能,攻击者可以向服务端上传含有恶意 JSP 脚本代码的文件,然后利用漏洞进行文件包含,从而达到远程代码执行获取服务器权限等攻击目的。攻击者通过漏洞利用AJP 服务端口实现攻击,在未对外网开启 AJP 服务的情况下,不受漏洞影响(Tomcat 默认开启 AJP 服务并将其绑定至 0.0.0.0)。

影响范围

  • ECS 集群应用和 JAR 包部署方式的应用不受此AJP漏洞影响。
  • 在 EDAS K8s 集群中使用 WAR 包方式进行应用部署的客户需要进行漏洞修复工作。
  • 在 EDAS K8s 集群中使用镜像方式部署,且 Tomcat Server.xml 配置文件中开启了 Tomcat AJP Connector 的客户,需要进行漏洞修复工作。

解决方案

  • 在EDAS K8s 集群中使用 WAR 包方式部署的客户,请通过 Console/API 方式重新部署应用即可。
  • 在EDAS K8s 集群中使用镜像方式部署的客户,请使用注释掉 Tomcat AJP Connector 的 Tomcat 版本重新制作镜像并重新部署。

验证方法

通过 WebShell 登录容器,找到相应的 tomcat conf 目录,查看 server.xml 文件内是否存在 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 配置。

  • 如果不存在,表示该漏洞修补成功。
  • 如果存在,修补该漏洞,具体请参见解决方案

问题反馈

如果您在使用上述功能过程中有任何疑问或问题,或在升级过程中出现任何问题。请提交工单,或联系我们的支持人员协助处理,同时也欢迎您扫描下面的二维码加入钉钉群进行反馈。

EDAS升级客户沟通群钉钉群二维码