首页 网络安全 正文
  • 本文约1266字,阅读需6分钟
  • 249
  • 0

Apache Tomcat存在远程代码执行漏洞CVE-2024-56337

摘要

栋科技漏洞库关注到 Apache 软件基金会近期发布针对 Apache Tomcat 远程代码执行漏洞的修复更新,漏洞被追踪为CVE-2024-56337。

Apache Tomcat存在远程代码执行漏洞CVE-2024-56337

栋科技漏洞库关注到 Apache 软件基金会近期发布针对 Apache Tomcat 远程代码执行漏洞的修复更新,漏洞被追踪为CVE-2024-56337。

二、漏洞分析

CVE-2024-56337漏洞具体而言,是存在于Apache Tomcat中检查时间使用时间TOCTOU(Time-of-Check Time-of-Use)竞争条件漏洞。

CVE-2024-56337漏洞源于对先前 Apache Tomcat 远程代码执行漏洞CVE-2024-50379的不完整修复而导致的,CVSS评分系统暂未定级。

该漏洞影响 Apache Tomcat 从11.0.0-M1到11.0.1,从10.1.0-M1到10.1.33,从9.0.0.1到9.0.97等多个版本,涉及远程代码执行(RCE)。

若默认servlet为可写(参数readonly设置值为false,此为非默认设置)表示不区分大小写文件系统,在负载下并发读取和上传同一文件时,

可绕过Tomcat大小写检查,攻击者通过构造恶意请求上传含恶意JSP代码的文件使其触发解析并执行这些文件,从而导致远程代码执行。

具体分析来说,就是当 Apache Tomcat 在默认servlet启用写入功能的情况下时,攻击者就可以在区分大小写的文件系统上利用这一漏洞。

恶意行为者通过操控特定路径能够绕过安全措施,构造恶意请求上传含恶意JSP代码的文件,使其触发解析并执行文件导致远程代码执行。

研究人员Nacl、WHOAMI、Yemoli和Ruozhi发现并报告该漏洞,Knownsec 404团队的dawu和Sunflower也提供了详细概念验证(PoC)。

Apache软件基金会敦促相关受影响用户尽快更新到最新的安全版本:Apache Tomcat 11.0.2及以上、10.1.34及以上、9.0.98及以上版本。

根据与Tomcat一起使用的Java版本,用户可能还需要进行进一步配置,以完全降低风险,具体如下:

若用户在不区分大小写的文件系统上运行Tomcat且默认启用servlet写入功能(参数readonly设置值为false),则可能需要进行额外配置,

如此才能完全缓解CVE-2024-50379,这取决于用户使用的Tomcat与Java的对应版本,具体缓解措施如下:

在Java 8或Java 11上运行:系统属性sun.io.useCanonCaches必须明确设置为false(默认值为true)

在Java 17上运行:系统属性sun.io.useCanonCaches(如果设置)必须设置为false(默认值为false)

在Java 21及更高版本上运行:无需进一步配置(系统属性和有问题的缓存已被删除),

这是由于Tomcat 11.0.3、10.1.35和9.0.99以上版本将检查sun.io.useCanonCaches是否设置正确,

然后才允许在不区分大小写的文件系统上启用默认servlet的写功能,Tomcat还会尽可能将sun.io.useCanonCaches默认设置为false。

三、影响范围

9.0.0.M1 <= Apache Tomcat < 9.0.98

10.1.0-M1 <= Apache Tomcat < 10.1.34

11.0.0-M1 <= Apache Tomcat < 11.0.2

四、修复建议

官方已发布修复方案,受影响的用户建议更新至安全版本:Apache Tomcat 11.0.2及以上、10.1.34及以上、9.0.98及以上

五、参考链接

文章回复-路羽博客.png此处内容已隐藏,评论后刷新即可查看!

评论
更换验证码
友情链接