React2DoS:Flight协议起飞即坠毁,新型拒绝服务漏洞深度剖析
本文深度分析CVE-2026-23869(React2DoS)漏洞,揭示React Server Components中Flight协议的反序列化缺陷如何导致远程拒绝服务。攻击者通过递归Map引用实现二次方复杂度CPU耗尽,仅需数十KB请求即可瘫痪服务。提供完整攻击链、缓解建议及常见问题解答。
🔓 High 漏洞利用
攻击者利用React Server Components中Flight协议的反序列化缺陷,通过精心构造的递归Map引用触发二次方计算复杂度,实现远程拒绝服务。仅需数十KB的请求即可导致服务器CPU耗尽数分钟,严重影响服务可用性。
来源:Imperva Blog | 2026-04-09 | 原文链接
🔍 关键发现
- CVE-2026-23869允许未认证攻击者通过客户端发送的递归$Q0引用触发Map构造器的重复执行,造成CPU资源耗尽。
- 通过插入合法Map条目与递归引用混合,攻击复杂度从线性提升为二次方,使单次请求处理时间从秒级延长至分钟级。
- 该漏洞影响React Server Components 19.2.4及以下版本,修复方式是在调用Map/Set构造器前先设置consumed标志位。
⚔️ 攻击链分析
攻击者构造包含多个$Q0递归引用的Flight协议chunk -> 服务器反序列化时反复尝试构造Map对象(因根对象未解析而失败) -> 利用合法条目延长迭代过程,触发二次方复杂度计算 -> 单请求CPU耗时数分钟,多请求并发导致服务完全瘫痪
🚩 失陷指标 (IOC)
包含大量$Q0引用的Flight协议payload(如payload = { '0': ['$Q0', '$Q0', ...] })请求体大小在数十KB到数百KB之间,且包含重复的$Q0和合法Map条目混合结构
🛡️ 缓解建议
- ✅ 立即升级React Server Components至19.2.4以上版本(官方已修复)。
- ✅ 在应用层或WAF层限制单个请求的解析时间或CPU消耗,检测异常递归引用模式。
- ✅ 部署Imperva等具备自动防护能力的代理,拦截恶意Flight协议payload。
涉及漏洞:["CVE-2026-23869"]
⚠️ 本文仅供安全研究与学习,IOC 信息请勿用于非法目的。
🤖 常见问题解答(FAQ)
❓ 该漏洞影响哪些React版本?
影响React Server Components 19.2.4及以下版本,官方已在后续版本中修复,建议立即升级。
❓ 攻击者如何触发二次方复杂度?
通过混合发送合法Map条目与递归$Q0引用,使Map构造器在遍历完合法条目后才触发异常,导致计算量随条目数呈二次方增长。
❓ 是否有现成的防护规则?
Imperva等WAF已提供自动防护;也可在应用层限制Flight协议payload大小、解析超时或检测异常递归结构。