新扫描工具用于检测暴露的ReactJS和Next.js RSC端点(CVE-2025-55182)
一款新的安全评估工具已经发布,旨在帮助研究人员和管理员识别可能暴露于CVE-2025-55182漏洞的React Server Components端点。
该扫描工具由化名为Fatguru的渗透测试人员开发,是一个轻量级、非侵入性的Python脚本。它提供了一种“表面检测”方法,避免了攻击性的概念验证漏洞利用的陷阱。这些漏洞利用由于代码压缩和摇树优化,在生产环境中经常失败。
CVE-2025-55182是Next.js框架中的一个严重漏洞,特别影响服务器操作如何处理序列化数据。虽然该漏洞可能导致远程代码执行,但安全团队一直难以验证其是否存在。
许多现有的概念验证尝试注入固定的有效载荷,例如vm#runInThisContext,或者依赖默认的模块ID,如{"id":"vm"}。
在开发环境中,这些有效载荷通常能成功触发。然而,在使用Webpack或Turbopack的生产版本构建中,模块ID通常被压缩成整数(例如742)或短字符串。
因此,针对易受攻击服务器的标准远程代码执行尝试会失败,因为漏洞利用有效载荷引用的模块名称在编译后的代码中已不存在,这导致了危险的安全假象。
新发布的扫描工具通过验证攻击面来弥补这一检测空白,而不是试图触发特定的漏洞利用程序。
该工具不发送恶意有效载荷,而是检查目标服务器是否暴露了由Content-Type: text/x-component标头指示的RSC协议,并接受特定的Next.js操作标头。如果服务器试图处理这些RSC有效载荷,该工具就会将该端点标记为已暴露。
这种方法确认了漏洞路径是开放的,而无需猜测正确的压缩模块ID或干扰服务器操作。
对于安全专业人员而言,该扫描工具的阳性结果表明该端点可访问并且正在处理潜在的危险输入。
该工具的文档指出,如果扫描工具标记了目标,则需要进一步的手动验证来证明远程代码执行的可能性。这将涉及枚举或模糊测试Webpack模块ID(在生产环境中通常是1到5000之间的整数),或分析客户端资源(如webpack-runtime.js)以将有效的ID映射到潜在的漏洞利用程序。
该工具设计简单易用,便于集成到现有工作流中。它支持通过命令行参数进行单目标扫描,也支持通过列表输入进行批量扫描,并将结果输出到CSV文件用于报告。运行该工具的先决条件极少,只需要Python 3和标准库依赖项。
此版本为运行Next.js应用程序的组织提供了关键能力,使它们能够在攻击者逆向工程生产版本以制作有效漏洞利用程序之前,有效审计自身对CVE-2025-55182的暴露情况。
补救步骤:
- 立即升级: 更新到最新的修补版本(例如,Next.js 15.0.5+、15.1.9+ 或 16.0.7+)。
- 验证暴露情况: 使用该扫描工具审计您的外部攻击面,并确认没有未修补的端点可访问。
- 下载工具: 安全团队可以在下面的官方存储库中访问该扫描工具和完整文档。