Laravel v11.x 中发现了一个重大漏洞,该框架是一款流行的 PHP Web 框架,以构建现代、优雅的 Web 应用程序而闻名。此漏洞被指定为CVE-2024-40075,是一个 XML 外部实体 (XXE) 缺陷,可能允许攻击者执行任意命令并访问敏感数据。
安全研究员Q16G对该漏洞进行了深入分析,概述了 Laravel 代码库中的关键利用点。该漏洞可追溯到 MonologHandlerHandler 类中 __destruct 函数的处理,该类是 Laravel 日志记录机制的核心组件。以下是利用过程的详细信息:
-
跟踪 __destruct 函数:研究人员首先发现,抽象类 MonologHandlerHandler 中的 __destruct 函数如果没有被子类覆盖,就会被调用。该函数最终会调用 close 方法。
MonologHandlerHandler
-
子类分析:通过找到重写了 close 方法但没有重写 __destruct 方法的子类(例如 groupHandler),可以进一步跟踪执行流。
MonologHandlerGroupHandler
-
处理程序迭代:在 groupHandler close 方法中,代码遍历处理程序并执行其 close 方法,从而发现 getStreamName 方法调用。
PsyReadlineHoaStream
-
触发器识别:getStreamName 方法随后调用 md5 函数,因此需要搜索 __tostring 触发器。研究人员将实现类 PsyReadlineHoaFileRead 确定为关键组件。
Termwind组件元素
-
函数执行:最后,由于 __tostring 函数调用 tostring 函数,而该函数又调用 $this->stypes->format 函数,因此可以利用该漏洞执行任意命令。
CVE-2024-40075 漏洞构成严重风险,因为它允许恶意行为者操纵 XML 输入并执行未经授权的操作,可能导致数据泄露和系统入侵。鉴于 Laravel 在 Web 开发中的广泛使用,此漏洞的影响可能非常广泛,影响全球众多 Web 应用程序。强烈建议用户更新到最新版本来保护他们的应用程序。
研究员Q16G的详细分析:
https://gitee.com/Q16G/laravel_bug/blob/master/laravelBug.md
原文始发于微信公众号(独眼情报):CVE-2024-40075:Laravel v11.x 中发现 XXE 漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论