
工具概述
安全研究人员Fatguru发布了一款新型安全评估工具,该轻量级Python脚本可帮助研究人员和管理员识别可能暴露CVE-2025-55182漏洞的React Server Components(RSC)端点。这款非侵入式扫描器采用"表面检测"方法,避免了传统PoC攻击的缺陷——由于代码压缩和tree-shaking优化,这些攻击在生产环境中往往失效。
漏洞背景
CVE-2025-55182是Next.js框架中的高危漏洞,主要影响Server Actions处理序列化数据的方式。虽然该漏洞可能导致远程代码执行(RCE),但安全团队一直难以有效验证其存在。
现有PoC通常尝试注入固定payload(如vm#runInThisContext)或依赖默认模块ID(如{"id":"vm"})。在开发环境中这些payload可能成功触发,但在使用Webpack或Turbopack的生产构建中,模块ID通常被压缩为整数(如742)或短字符串,导致标准RCE尝试失败,反而产生错误的安全感。
技术原理
新扫描器通过验证攻击面而非尝试特定攻击链来填补检测空白。工具不会发送恶意payload,而是检查目标服务器是否:
- 暴露由Content-Type: text/x-component标头指示的RSC协议
- 接受特定的Next.js操作标头
若服务器尝试处理这些RSC payload,工具就会将该端点标记为暴露状态。这种方法无需猜测正确的压缩模块ID或干扰服务器运行,即可确认漏洞路径是否开放。
使用说明
安全专业人员需注意,扫描结果为阳性仅表示端点可访问且正在处理潜在危险输入。根据工具文档,若扫描器标记目标,仍需通过以下方式手动验证RCE:
- 枚举或模糊测试Webpack模块ID(生产环境中通常为1-5000的整数)
- 分析webpack-runtime.js等客户端资源以映射有效ID
该工具支持通过命令行参数进行单目标扫描,也支持通过列表输入进行批量扫描,结果可输出至CSV报告文件。运行仅需Python 3和标准库依赖。
修复建议
- 立即升级:更新至已修复版本(Next.js 15.0.5+、15.1.9+或16.0.7+)
- 验证暴露情况:使用扫描器审计外部攻击面,确认不存在未修复的可访问端点
- 获取工具:安全团队可通过官方仓库获取扫描器及完整文档
参考来源:
New Scanner Tool for Detecting Exposed ReactJS and Next.js RSC Endpoints (CVE-2025-55182)
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)



