Linux环境下Tomcat的安全漏洞有哪些

作者:袖梨 2026-08-03

Linux环境下 Tomcat 常见安全漏洞与风险概览

一、近年高危漏洞清单

漏洞编号类型触发条件(Linux常见)影响版本修复版本关键要点
CVE-2025-24813RCE(反序列化)启用 DefaultServlet 写入(readonly=false)、启用 partial PUT、使用基于文件的会话持久化(默认路径)、类路径存在可利用链(如 Commons-Collections)9.0.0.M1–9.0.98、10.1.0–10.1.34、11.0.0–11.0.29.0.99、10.1.35、11.0.3利用路径规范化将“/”转为“.”,结合 JSESSIONID=.xxx 触发加载恶意序列化数据
CVE-2024-50379RCE(TOCTOU)文件系统大小写不敏感(如 macOS APFS/HFS+ 或 Windows)、启用写入、并发 PUT/GET9.0.0.M1–9.0.97、10.1.0–10.1.33、11.0.0–11.0.19.0.98、10.1.34、11.0.2并发上传与访问 .Jsp/.jsp 利用时间窗口执行代码
CVE-2025-55752访问控制绕过(URL重写)启用 URI 重写 且同时开放 PUT(默认通常仅受信用户可用)9.0.0.M11–9.0.108、10.1.0–10.1.44、11.0.0–11.0.109.0.109、10.1.45、11.0.11重写后 URL 在解码前规范化,可能绕过 /WEB-INF/、/META-INF/ 保护,存在上传后 RCE 的潜在链
CVE-2020-1938任意文件读取/包含(AJP)暴露 AJP Connector(8009) 且可被外网访问6.x、7.<7.0.100、8.<8.5.51、9.<9.0.31升级至修复版本通过 AJP 参数操控实现文件读取/包含,配合上传可进一步 RCE
CVE-2017-12615/12617任意文件写入/RCE将 DefaultServlet readonly=false 并允许 HTTP PUT7.0.0–7.0.79(12615);后续分析指出 5.x–9.x 在特定绕过下也可能受影响(12617)升级至修复版本利用 evil.jsp/、evil.jsp%20 等绕过,在 Linux 下也可用 evil.jsp/ 触发写入
CVE-2016-8735反序列化 RCE(JMX)使用 JmxRemoteLifecycleListener 且目标存在反序列化 gadget 链9.0.0.M1–9.0.0.M11、8.5.0–8.5.6、8.0.0.RC1–8.0.38、7.0.0–7.0.72、6.0.0–6.0.47升级至修复版本通过 JMX 反序列化接管 Tomcat 生命周期
CVE-2019-0232RCE(CGI)启用 CGIServlet、开启 enableCmdLineArguments、将 executable 置空或不当配置受影响版本以 9.0.x、8.5.x、7.0.x 的旧版为主升级至修复版本参数拼接到命令行执行,造成命令注入
注:上表为 Linux 生产环境最常见与影响较大的漏洞类型与条件,具体是否可利用取决于启用的组件与配置。

二、Linux特有的注意点

  1. CVE-2017-12615/12617 绕过在 Linux 同样有效:当 DefaultServlet 写入被开启时,使用 evil.jsp/ 这类路径规范化绕过可在 Linux 上创建可解析的 JSP 文件,从而获取 RCE。
  2. CVE-2024-50379 在 macOS 可触发:macOS 默认文件系统大小写不敏感,若同时开启写入与并发 PUT/GET,存在 TOCTOU 竞争导致 .Jsp 被执行的风险;Linux 常见为大小写敏感文件系统,天然降低该风险,但在非标准挂载或特殊文件系统上仍需评估。

三、快速自查要点

  1. 查看版本:执行 ./bin/version.sh,确认是否在受影响范围(如 9.0.0–9.0.98、10.1.0–10.1.34、11.0.0–11.0.2 对应 CVE-2025-24813)。
  2. 检查关键配置:
    1. conf/web.xml 中 DefaultServlet readonly 是否为 true(默认应为 true,开启写入风险极高)。
    2. conf/server.xml 是否存在 AJP Connector 且对外开放(默认端口 8009),如无需 AJP 建议注释或限制访问。
    3. 是否启用 CGIServlet(默认关闭),若启用需严格校验 enableCmdLineArguments 与 executable。
    4. 是否使用 JMX Remote Lifecycle Listener(JMX 反序列化风险点)。
  3. 会话与临时文件:确认是否使用基于文件的会话持久化(默认多为内存),以及 $CATALINA_BASE/work 目录的权限与清理策略。

四、加固与修复建议

  1. 升级版本(优先):
    1. CVE-2025-24813:9.0.99、10.1.35、11.0.3 及以上
    2. CVE-2024-50379:9.0.98、10.1.34、11.0.2 及以上
    3. CVE-2025-55752:9.0.109、10.1.45、11.0.11 及以上
  2. 配置加固(立即执行):
    1. 保持 DefaultServlet readonly=true,禁用 HTTP PUT/DELETE 等危险方法(在 web.xml 或反向代 理层限制)。
    2. 如无明确需求,禁用 AJP 或仅限本地/受信网络访问,并限制 8009 端口访问来源。
    3. 禁用或移除 CGIServlet;如必须使用,确保 enableCmdLineArguments=false、executable 为受控解释器且不可为空。
    4. 移除或更新存在反序列化风险的依赖(如旧版 commons-collections),减少反序列化利用面。
  3. 运行与运维:
    1. 以低权限系统用户运行 Tomcat,遵循最小权限原则。
    2. 清理 webapps 下默认示例与文档(如 docs、examples),减少信息泄露与攻击面。
    3. 启用并审计访问日志,监控异常 PUT/JSP 请求与会话文件异常增长。

相关文章

精彩推荐