Apache Tomcat远程代码执行漏洞分析与防护指南

本文详细分析了Apache Tomcat中发现的远程代码执行漏洞(CVE-2025-24813),影响版本包括11.0.0-M1至11.0.2、10.1.0-M1至10.1.34、9.0.0-M1至9.0.98,提供了完整的技术细节和修复建议。

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的概念验证代码已在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:更新软件)

  3. 漏洞管理流程

    • 保障措施7.1:建立和维护企业资产的文档化漏洞管理流程。每年审查和更新文档,或在发生可能影响此保障措施的重大企业变更时进行
    • 保障措施7.2:建立和维护基于风险的修复策略,记录在修复流程中,每月或更频繁地进行审查
    • 保障措施7.4:执行自动化应用程序补丁管理:每月或更频繁地通过自动化补丁管理对企业资产执行应用程序更新
    • 保障措施7.5:执行内部企业资产的自动化漏洞扫描:每季度或更频繁地执行内部企业资产的自动化漏洞扫描。使用符合SCAP的漏洞扫描工具进行身份验证和非身份验证扫描
    • 保障措施7.7:修复检测到的漏洞:根据修复流程,每月或更频繁地通过流程和工具修复软件中检测到的漏洞
  4. 网络基础设施更新

    • 保障措施12.1:确保网络基础设施保持最新。示例实现包括运行最新的稳定软件版本和/或使用当前支持的网络即服务(NaaS)产品。每月或更频繁地审查软件版本以验证软件支持
  5. 渗透测试计划

    • 保障措施18.1:建立和维护适合企业规模、复杂性和成熟度的渗透测试计划
    • 保障措施18.2:根据计划要求执行定期外部渗透测试,每年不少于一次
    • 保障措施18.3:根据企业的修复范围和优先级策略修复渗透测试发现的问题
  6. 最小权限原则:对所有系统和服务应用最小权限原则。以非特权用户(无管理权限)身份运行所有软件,以减少成功攻击的影响(M1026:特权账户管理)

  7. 账户管理

    • 保障措施4.7:管理企业资产和软件上的默认账户
    • 保障措施5.5:建立和维护服务账户清单
  8. 漏洞扫描:使用漏洞扫描来发现可能被利用的软件漏洞并进行修复(M1016:漏洞扫描)

  9. 应用程序渗透测试

    • 保障措施16.13:执行应用程序渗透测试。对于关键应用程序,身份验证的渗透测试比代码扫描和自动化安全测试更适合发现业务逻辑漏洞
  10. 网络分段:架构网络部分以隔离关键系统、功能或资源。使用物理和逻辑分段来防止访问可能敏感的系统信息(M1030:网络分段)

  11. 安全网络架构

    • 保障措施12.2:建立和维护安全的网络架构。安全的网络架构必须至少解决分段、最小权限和可用性问题
  12. 利用防护:使用功能来检测和阻止可能导致或指示软件利用发生的条件(M1050:利用防护)

  13. 启用反利用功能

    • 保障措施10.5:尽可能在企业资产和软件上启用反利用功能,如Microsoft®数据执行保护(DEP)、Windows® Defender Exploit Guard(WDEG)或Apple®系统完整性保护(SIP)和Gatekeeper™

参考链接

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计