漏洞预警 | React/Next.js组件RCE漏洞(CVE-2025-55182)详情分析-【附验证环境】
好的,我现在需要帮用户总结一篇文章的内容,控制在100字以内。首先,我得仔细阅读文章,抓住主要信息。 文章标题是“React Server Components远程代码执行漏洞”,导语提到React核心团队确认了一个严重漏洞,CVE编号是CVE-2025-55182。攻击者无需身份验证,只需一个HTTP请求就能在服务器上执行任意代码。这听起来非常严重,影响范围可能很大。 接下来,文章详细分析了漏洞的背景、官方公告、技术细节、验证环境等。漏洞存在于React Server Components的实现中,攻击者可以绕过serverManifest的限制,调用其他函数。比如,原本只能调用fs的readFileSync方法,现在可以调用writeFileSync。 我需要把这些关键点浓缩到100字以内。重点包括:React Server Components中的RCE漏洞、CVE编号、攻击方式、技术细节和验证环境。同时要保持语言简洁明了。 可能会这样组织:React团队确认了RSC中的RCE漏洞(CVE编号),攻击者无需验证即可通过HTTP请求执行代码。技术上利用了decodeAction函数和模块预加载机制绕过限制。漏洞已被验证,并提供了环境链接。 最后检查字数是否在限制内,并确保没有使用“文章内容总结”之类的开头。 </think> React核心团队确认React Server Components中存在严重远程代码执行漏洞(CVE-2025-55182),攻击者可通过HTTP请求在服务器上执行任意代码。该漏洞利用decodeAction函数和模块预加载机制绕过serverManifest限制,已提供验证环境。 2025-12-11 07:50:27 Author: www.4hou.com(查看原文) 阅读量:10 收藏

盛邦安全 漏洞 刚刚发布

316

收藏

导语:近日,React 核心团队确认了一个存在于 React Server Components (RSC) 实现中的严重远程代码执行 (RCE) 漏洞。

一、漏洞背景

近日,React 核心团队确认了一个存在于 React Server Components (RSC) 实现中的严重远程代码执行 (RCE) 漏洞。该漏洞被分配了 CVE-2025-55182(Next.js 对应编号 CVE-2025-66478),攻击者无需任何身份验证,仅通过一个 HTTP 请求,即可在你的服务器上执行任意代码。

该漏洞烽火台实验室日前已做了相关预警:

https://mp.weixin.qq.com/s/djibDduH3bluVXHDSLAsSg

二、官方公告

官方公告中提到,该漏洞由Lachlan Davidson 在Lachlan Davidson11 月 29 日 进行报告:

https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components

QQ20251205-141902.png

在作者的github中,也贴了这样一个链接,说明了该漏洞的局限性。

https://react2shell.com

QQ20251205-142338.png

三、详情分析

对源码进行分析,在server.js中,当请求/formaction会进入如下:

QQ20251205-142424.png

注释很明显,主要关注decodeAction函数,decodeAction函数的实现位于node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js中,接收body和serverManifest。当表单名以$ACTION_REF_123 开头,则截取$ACTION_REF_123 中的123,然后重新拼接为$ACTION_123: 作为value,然后将body、serverManifest、value作为参数调用decodeBoundActionMetaData方法。

QQ20251205-142448.png

进入到decodeBoundActionMetaData方法中,会获取所有以$ACTION_123:开头的表单项;

QQ20251205-142510.png

然后调用getChunk(body, 0) 获取表单名称为$ACTION_123:0 的内容;

QQ20251205-142538.png

随后会用serverManifest,value.id,value.bound作为参数调用loadServerReference函数,根据serverManifest找到对应函数,预加载模块,然后把它封装成一个真正可调用的 JS 函数,绑定参数。

QQ20251205-142558.png

在resolveServerReference 中,先通过id在manifest 中获取resolvedModuleData,再拿到保存的name,也就是通过模块名拿到resolvedModuleData,然后再调用resolvedModuleData.name去拿函数名进行返回;如果没获取到则会通过#进行切割id,#前作为模块名,#后则作为函数名进行返回。

QQ20251205-142619.png

随后调用preloadModule,在moduleExports中,保存该模块的所有函数,可以通过resolveServerReference 中处理后得到的函数名来获取进行返回,而函数名我们可以通过fs#writeFileSync来指定绕过manifest 中的限制来调用其他函数。

QQ20251205-142639.png

总结一下,这个漏洞实际上是绕过serverManifest中的对某个模块的特定方法的调用,如该项目中指定了fs的readFileSync方法可以调用,实际上可传入fs#writeFileSync来调用其他方法。

四、漏洞验证环境

Ddpoc上提供了该漏洞的验证环境,访问第一个镜像。

https://www.ddpoc.com/vulenv.html

QQ20251205-142718.png

点击启用,生成一个容器环境(15分钟内自动销毁)

QQ20251205-142741.png

五、漏洞验证

QQ20251205-142805.png

原文链接

如若转载,请注明原文地址

  • 分享至

取消 嘶吼

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟


文章来源: https://www.4hou.com/posts/NGzm
如有侵权请联系:admin#unsafe.sh