Apache Tomcat远程代码执行漏洞深度解析

本文详细分析了Apache Tomcat中发现的远程代码执行漏洞(CVE-2025-24813),包括受影响版本、攻击技术细节、风险等级评估以及全面的修复建议和防护措施。

Apache Tomcat远程代码执行漏洞分析

MS-ISAC 公告编号:2025-027
发布日期:2025年3月18日

概述

在Apache Tomcat中发现了一个漏洞,可能允许远程代码执行。Apache Tomcat是一个开源的Java servlet容器和Web服务器,用于托管基于Java的Web应用程序并实现Java Servlet和JavaServer Pages(JSP)规范,为运行动态Web内容提供平台。成功利用此漏洞可能允许在系统上下文中执行远程代码。根据与系统相关的权限,攻击者可以安装程序;查看、更改或删除数据。

威胁情报

针对CVE-2025-24813的漏洞利用概念验证(PoC)代码已在GitHub上发布。

受影响系统

  • Apache Tomcat 11.0.0-M1 至 11.0.2
  • Apache Tomcat 10.1.0-M1 至 10.1.34
  • Apache Tomcat 9.0.0-M1 至 9.0.98

风险等级

政府机构:

  • 大型和中型政府实体:高
  • 小型政府实体:中

企业:

  • 大型和中型企业实体:高
  • 小型企业实体:中

家庭用户:低

技术详情

在Apache Tomcat中发现了一个漏洞,可能允许远程代码执行。漏洞详情如下:

战术:初始访问(TA0001)
技术:利用面向公众的应用程序(T1190)

部分PUT的原始实现使用基于用户提供的文件名和路径的临时文件,并将路径分隔符替换为“.”。当以下配置为真时,攻击者可以通过简单的PUT请求执行远程代码:

  • 默认servlet启用写入(默认禁用)。
  • 支持部分PUT(默认启用)。
  • 应用程序使用Tomcat基于文件的会话持久化,并采用默认存储位置。
  • 应用程序包含可能被反序列化攻击利用的库。

修复建议

我们建议采取以下行动:

  1. 禁用部分PUT请求:如非必需,禁用部分PUT请求以减少攻击面。
  2. 应用补丁:在适当测试后,立即为易受攻击的系统应用Apache提供的适当更新。(M1051:更新软件)
    • 保障措施7.1:建立和维护企业资产的漏洞管理流程。每年或在发生可能影响此保障措施的重大企业变更时审查和更新文档。
    • 保障措施7.2:建立和维护基于风险的修复策略,记录在修复流程中,每月或更频繁地进行审查。
    • 保障措施7.4:通过每月或更频繁的自动补丁管理,对企业资产执行应用程序更新。
    • 保障措施7.5:每季度或更频繁地对内部企业资产执行自动漏洞扫描。使用符合SCAP的漏洞扫描工具进行身份验证和非身份验证扫描。
    • 保障措施7.7:根据修复流程,每月或更频繁地通过流程和工具修复检测到的软件漏洞。
    • 保障措施12.1:确保网络基础设施保持最新。示例实现包括运行最新的稳定软件版本和/或使用当前支持的网络即服务(NaaS)产品。每月或更频繁地审查软件版本以验证软件支持。
    • 保障措施18.1:建立和维护适合企业规模、复杂性和成熟度的渗透测试计划。渗透测试计划特征包括范围(如网络、Web应用程序、API、托管服务和物理场所控制)、频率、限制(如可接受时间和排除的攻击类型)、联系信息、修复(如内部如何路由发现)以及回顾要求。
    • 保障措施18.2:根据计划要求执行定期外部渗透测试,不少于每年一次。外部渗透测试必须包括企业和环境侦察以检测可利用信息。渗透测试需要专业技能和经验,必须通过合格方进行。测试可以是白盒或黑盒。
    • 保障措施18.3:根据企业的修复范围和优先级策略,修复渗透测试发现的问题。
  3. 应用最小权限原则:对所有系统和服务应用最小权限原则。以非特权用户(无管理权限)运行所有软件,以减少成功攻击的影响。(M1026:特权账户管理)
    • 保障措施4.7:管理企业资产和软件上的默认账户,如root、administrator和其他预配置的供应商账户。示例实现包括禁用默认账户或使其无法使用。
    • 保障措施5.5:建立和维护服务账户清单。清单至少必须包含部门所有者、审查日期和目的。以最低每季度或更频繁的重复计划执行服务账户审查,以验证所有活动账户均被授权。
  4. 漏洞扫描:使用漏洞扫描来查找可能被利用的软件漏洞并进行修复。(M1016:漏洞扫描)
    • 保障措施16.13:执行应用程序渗透测试。对于关键应用程序,身份验证的渗透测试比代码扫描和自动安全测试更适合发现业务逻辑漏洞。渗透测试依赖于测试人员的技能,以身份验证和非身份验证用户手动操作应用程序。
  5. 网络分段:架构网络部分以隔离关键系统、功能或资源。使用物理和逻辑分段防止访问可能敏感的系统信息。使用DMZ包含任何不应从内部网络暴露的面向互联网的服务。配置单独的虚拟私有云(VPC)实例以隔离关键云系统。(M1030:网络分段)
    • 保障措施12.2:建立和维护安全的网络架构。安全的网络架构必须至少解决分段、最小权限和可用性。
  6. 利用保护:使用功能检测和阻止可能导致或指示软件利用发生的条件。(M1050:利用保护)
    • 保障措施10.5:在可能的情况下,在企业资产和软件上启用防利用功能,如Microsoft®数据执行保护(DEP)、Windows® Defender Exploit Guard(WDEG)或Apple®系统完整性保护(SIP)和Gatekeeper™。

参考链接

  • Apache:https://lists.apache.org/thread/j5fkjv2k477os90nczf2v9l61fb0kkgq
  • CVE:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-24813
  • NIST:https://nvd.nist.gov/vuln/detail/CVE-2025-24813
  • Qualys:https://threatprotect.qualys.com/2025/03/18/apache-tomcat-remote-code-execution-vulnerability-exploited-in-the-wild-cve-2025-24813/
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计