Apache Tomcat 高危远程代码执行漏洞(CVE-2024-56337)

Apache Tomcat 高危远程代码执行漏洞(CVE-2024-56337)

云梦DC 云梦安全 2024-12-23 00:39

一、漏洞概述

漏洞名称
:Apache Tomcat 远程代码执行漏洞CVE 编号
:CVE-2024-56337漏洞类型
:TOCTOU(时间差竞争条件)发现时间
:2024年12月21日风险评分
:9.8(高危)利用条件
:无权限限制,网络可达公开状态
:PoC/EXP 已公开,在野利用尚未发现

漏洞背景

Apache Tomcat 是广泛使用的开源 Web 服务器和 Java Servlet 容器。在此次披露的漏洞中,安全研究人员指出,该问题源于对早期漏洞(CVE-2024-50379)的缓解措施不完整。如果 Apache Tomcat 在特定配置下运行,攻击者可能利用该漏洞通过写入恶意文件,实现远程代码执行。

触发条件

1. Tomcat 默认 servlet 的readonly
 初始化参数设置为false
(启用写权限)。

  1. Java 系统属性sun.io.useCanonCaches
     设置为true
    (Java 8 和 Java 11 默认为 true,Java 17 默认 false,Java 21 及以上版本不受影响)。

  2. Tomcat 运行在区分大小写的文件系统上(如 Windows 或某些 Linux 文件系统)。

当满足以上条件时,攻击者可通过发送特制请求,将恶意文件写入服务器,并最终实现远程控制。

二、影响版本

以下 Apache Tomcat 版本受到漏洞影响:
– Apache Tomcat 11.0.0-M1 至 11.0.1

  • Apache Tomcat 10.1.0-M1 至 10.1.33

  • Apache Tomcat 9.0.0-M1 至 9.0.97

三、如何修复漏洞

为避免该漏洞带来的风险,建议受影响的用户尽快采取以下措施:

1. 升级 Apache Tomcat

官方已发布修复版本,用户应及时升级至以下版本:
– Apache Tomcat 11.0.2 及以上

  • Apache Tomcat 10.1.34 及以上

  • Apache Tomcat 9.0.98 及以上

下载链接

Apache Tomcat 官网

2. 临时缓解措施

如无法立即升级,可通过以下方法进行临时缓解:
Java 8/Java 11
:显式设置系统属性sun.io.useCanonCaches
 为false
(默认值为 true)。

  • Java 17
    :如该属性被设置,需确保其值为false
    (默认值为 false)。

  • Java 21 及以上版本
    :无需进一步配置(该属性已被移除)。

设置方法示例

在启动 Tomcat 的 JVM 参数中添加以下配置:

-Dsun.io.useCanonCaches=false
3. 通用安全建议
  • 定期更新服务器和依赖软件的安全补丁,避免已知漏洞被利用。

  • 强化网络和系统访问控制,关闭不必要的端口和服务。

  • 采用多因素认证及最小权限原则,限制用户和应用的权限。

  • 设置强密码策略,并定期修改密码。

四、参考资料

  • Apache 官方漏洞通告
  • CVE-2024-56337 的 NVD 页面
  • CVE-2024-50379 修复讨论