2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家
本文的土耳其语版本最初发布于 blog.arasmehmet.com。
免责声明:这是对已公开披露且自披露以来已修补的通用漏洞披露(CVE)的回顾性分析。所讨论的所有利用机制均为概念性的;此处没有任何内容是可实际运作的利用代码。
2025年12月3日。React 安全公告发布了 CVE-2025-55182,昵称为 React2Shell。其通用漏洞评分系统(CVSS)得分为 10.0,即最高可能的严重程度。通过一个精心构造的超文本传输协议(HTTP)请求,无需身份验证,即可在任何运行 React 服务器组件的应用程序上执行任意代码。
拉克兰·戴维森(Lachlan Davidson)在此前四天向 Meta 的漏洞赏金计划报告了该问题。Meta 的安全团队在次日进行了验证。补丁和公开披露于 12 月 3 日同时发布。
我仔细研究了安全公告、补丁差异对比以及事后分析报告。关注的不是安全行业的热门观点,而是实际的运作机制。以下是引人注目的要点。
本文内容包括:
- 漏洞详情
- Flight 协议与 Thenable 对象
- 通过原型链实现远程代码执行(RCE)
- 为何默认配置的 Next.js 存在漏洞
- 受影响的软件包
- 发现与披露过程
- 野外利用情况
- 影响范围
- 长达 700 行的诱饵补丁
- 人工智能生成的虚假概念验证(PoC)
- Cloudflare 中断事件
- 修复方案
- 应对措施
1. 漏洞详情
React 19 引入了服务器组件,它们通过一种名为 Flight 的协议与客户端通信。Flight 负责在网络传输的一端序列化数据,并在另一端反序列化数据。
Flight 未能正确验证传入的有效负载。攻击者可以发送一个包含伪造“Chunk”对象的精心构造的 HTTP 请求。当 React 尝试将该对象解析为 Promise 时,定义在该对象上的 then 方法便会执行。
利用链如下:
- 攻击者发送一个伪造的 Chunk 对象。
- React 尝试将其作为 Promise 进行处理。
- 伪造的
then方法运行。 - 通过 JavaScript 的原型链,
Array.constructor指向Function()构造函数。 -
Function()在运行时将字符串编译为可执行代码,从而在服务器上执行任意代码。
2. Flight 协议与 Thenable 对象
Flight 协议以以下格式传输 React 服务器组件(RSC)有效负载:
0:{"name":"MyComponent","env":"Server"}
1:["$","div",null,{"children":"Hello"}]
问题在于,React 在解析传入对象并尝试将其视为 Promise 之前,并未先检查 then 方法。在 JavaScript 中,任何拥有 then 方法的对象都被视为“Thenable”(可.then 对象):
// 常规 Promise
const 免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。