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大小、解析超时或检测异常递归结构。

[!] CONTACT_CHANNELS

如需商务合作、技术咨询或漏洞反馈,请通过以下离岸节点联系作者。

> PING_AUTHOR (@A1RedTeam)