news 2026/5/25 14:00:10

别以为 React2Shell 过去了:RSC 又爆出两颗新雷,每个 Next.js/React 团队都该立刻知道

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
别以为 React2Shell 过去了:RSC 又爆出两颗新雷,每个 Next.js/React 团队都该立刻知道

我有一支技术全面、经验丰富的小型团队,专注高效交付中等规模外包项目,有需要外包项目的可以联系我

Web 安全很多时候像“后台静默更新”。

我们打补丁、升版本、跑 lint、继续写需求——一切看起来都很正常。但总有那么一两次,整个生态会突然被迫停下来:不许装忙,不许装没看见。

最近的 React2Shell 就是那次“全体起立”。它把社区逼得开始认真扒开 React Server Components(RSC)到底怎么在底层跑、怎么解析请求、怎么把“看起来像数据的东西”变成“会动的东西”。

然后,新的结果来了:两处新的 RSC 漏洞被挖出来了,而它们正是 Next.js 等框架赖以运行的那套实现的一部分。

这两个漏洞分别是CVE-2025-55184CVE-2025-55183。它们由一位外部研究者通过Vercel 与 Meta 的漏洞赏金项目提交并披露。并且目前没有证据表明它们已在真实世界被大规模利用——尽管如此,它们依然值得每一个使用 RSC 的团队花时间弄清楚。

这篇文章会拆开讲:漏洞是什么、影响谁、为什么重要、以及开发者该怎么保护自己的应用。

为什么现在必须在意

React Server Components 不是“一个新语法糖”,而是 React 生态里最具影响力的结构性变化之一。

它承诺的好处很诱人:把一部分逻辑移到服务器,减小客户端包体、改善 hydration、并且让你访问数据像呼吸一样自然——不用把一堆不必要的 JavaScript 运到浏览器里。

然而,新抽象带来的从来不只有便利,还有新的攻击面

React2Shell 的 PoC 一出来,大家才被迫认真审视:RSC 请求到底是怎么被解析的?框架面对“意外输入”时到底稳不稳?而这股调查并没有在第一颗炸弹爆炸后停止。研究者继续深挖,结果又挖出了两处需要立刻修补的问题。

好消息是:这两处都需要精心构造的请求,而且目前没有公开的“已在野利用”证据。更好的消息是:这说明安全社区正在真实地参与修复 RSC 生态,而不是等着下一次灾难发生。于是,我们得到的是更清晰的风险边界,以及更及时的补丁落地到框架中。

CVE-2025-55184

通过恶意 RSC Payload 造成拒绝服务(DoS)

严重性:高影响:服务器卡死、CPU 飙高类型:拒绝服务(Denial of Service)

这两个里更“危险”的往往不是泄密那个,而是这一类:它不偷东西,但能让你整台服务直接停摆。甚至可能只需要一条恶意请求——就够了。

我们把它讲清楚。

这个漏洞允许什么

攻击者可以向任何会处理 App Router 请求的端点发送一个特制的 HTTP 请求,让服务器出现:

  • 反序列化 payload 时无限挂起

  • CPU 资源被锁死、耗尽

  • 后续正常流量被阻塞,应用整体变得不可用

最关键的是:不需要登录、不需要会话、不需要认证。你甚至不用“进入系统”,就能让系统喘不过气。

它为什么会发生

RSC 依赖一种特殊的序列化格式,用来在客户端与服务端之间传输组件边界、props、action 标识等信息。正常情况下,这套格式被认为是结构化且可控的。

但问题出在:当服务器去反序列化“不可信输入”时,某些数据模式会触发无限处理循环极端耗时的路径。于是你的服务端线程被拖住,CPU 被拉满,整个实例像被按住喉咙一样发不出声音。

更麻烦的是:最初的修补只是加了一些“护栏”,看起来挡住了一部分 DoS 向量,却没挡住全部。这个不完整的修复,后来又引出了一个后续漏洞:CVE-2025-67779

谁会受影响

凡是通过 App Router 处理 RSC 请求的框架版本,都可能中招,包括但不限于:

  • Next.js

  • 使用 React Server Components 的自研框架

  • 任何把外部输入交给 RSC handler 解析的服务器

只要你在用 RSC,就应该默认:在打上补丁之前,你曾经处于风险区。

真实世界里它会长什么样

DoS 很少是“无聊的恶作剧”。它经常被用来:

  • 打掉竞争对手的关键服务

  • 在大促、发布会、热门事件期间制造中断

  • 配合勒索与要挟

  • 作为更深层攻击前的探测与压测

它不一定给你“远程执行代码”的戏剧性结果,但它能让你的生产环境停止工作。而对业务来说,“停摆”本身就足够致命,所以它被评为高危并不夸张。

CVE-2025-55183

暴露已编译的 Server Action 源码

严重性:中影响:源码泄露类型:信息暴露(Information Exposure)

如果说上一个像“把你家电闸直接拉掉”,那这一个更像“把你家钥匙的结构图贴到门口”。

它不一定让服务器立刻倒下,但它会暴露一件你绝对不想公开的东西:Server Actions 的已编译代码

这个漏洞允许什么

攻击者对任意 App Router 端点发起恶意请求,可能导致服务器响应里包含:

  • 被访问的 Server Action 的已编译代码

  • action 的处理逻辑轮廓

  • 后端操作的结构与流程

它通常不会直接吐出环境变量、密钥或私钥——除非你把这些东西硬编码进 Server Action(大多数人不会,但也不是绝无可能)。

为什么这事仍然很要命

就算没有直接泄露“密码”,业务逻辑本身也是敏感资产。被别人看到了,你可能会暴露:

  • API 的访问模式与节奏

  • 内部校验与过滤步骤

  • 数据库查询形状与路径

  • feature flag 的判断条件

  • 认证流程与边界细节

这些信息对攻击者来说价值极高,因为它能把“盲打”变成“按图索骥”。

它为什么会发生

根因仍然和 RSC 请求的解释方式有关:当发送某些畸形或刻意构造的 payload 时,服务器会返回对 Server Action 的某种序列化表示,结果“多说了不该说的”,把源码级信息暴露了出来。

谁会受影响

同样地,只要你通过 App Router 使用 RSC,这类风险就可能存在。

真实世界的影响

源码泄露意味着攻击者能更快、更准地理解你的:

  • 应用逻辑

  • 可能存在的下一处漏洞

  • 内部架构

  • 数据流假设

它不一定立刻造成“爆炸”,但它会扩大攻击面,让很多团队依赖的“朦胧安全感”(哪怕你知道安全不能靠遮掩)瞬间塌掉。

这两个漏洞是怎么被发现的

这整个发现过程本身,其实也在提醒我们:开放生态为什么能活得更久。

React2Shell 把社区讨论点燃之后,一位独立安全研究者顺着讨论继续往下挖,深入研究 RSC 通信层是如何解释数据、如何处理边界情况的。随后,他们在 Vercel 与 Meta 的漏洞赏金机制下进行了负责任披露,把两个问题提交给维护方。

这给了维护方一个关键窗口:在不把生态暴露给更大风险的前提下,完成修复、验证,并准备安全版本发布。

相关公司也公开致谢,强调安全是协作而不是闭门造车——这点在今天尤其重要。

开发者现在应该做什么

即便暂时没有“已在野利用”的信号,所有在做现代 React 的团队也不该观望。你可以按下面步骤走:

1)立刻升级

按你的框架补丁说明走。Next.js 以及相关依赖已经发布了修复版本。请同时更新:

  • 框架本身

  • RSC 处理相关包

  • 自定义 server 集成部分(如果你做了二次封装)

2)不要把 RSC 端点毫无遮拦地暴露在公网

确保做到:

  • 非公开路由有访问控制

  • 开启限流(rate limiting)

  • 通过 WAF 过滤畸形 payload 与可疑请求

3)审计你的 Server Actions

重点检查:

  • 是否硬编码了任何敏感信息

  • 是否存在“逻辑一旦泄露就会被滥用”的关键步骤

  • 是否包含业务核心算法或规则

必要时,把真正敏感的动作下沉到更严格的后端服务层,而不是都堆在 Server Action 里。

4)监控日志里的异常流量

哪怕没有已知利用,畸形 RSC 请求本身就可能意味着攻击者在探测未打补丁的目标。别等到告警爆炸才回头看。

5)建立“默认安全”的工程文化

RSC 已经是服务器代码了,不是“前端便利功能”。 既然它跑在服务器上,就必须用服务器级别的标准去审视它:权限、边界、输入、失败策略、审计、隔离——一个都不能少。


更大的图景:成长的阵痛,也是生态在变强的证据

React Server Components 是一次进化,但进化意味着复杂度上升。更关键的是:RSC handler 并不是传统 REST API,它用的是一套相对年轻的协议,边界还在扩展,边角还在被极限测试。

好消息是:这些漏洞之所以被发现,是因为社区“足够在意”。透明讨论带来了更多审查,更多审查带来更强的系统——这正是开放生态最有生命力的部分。

所以真正的 takeaway 不是恐慌,而是认知升级

现代 Web 栈早就不再是清清楚楚的“前端/后端分界线”。React 正在模糊它,于是安全责任也被一起模糊了。任何跑在服务器上的代码,即便它来自一个前端框架,也必须接受与传统后端同等级别的安全审视。

最后总结

CVE-2025-55184CVE-2025-55183不是“React 失败了”的证据,它们更像是:RSC 生态正在长大、正在被认真对待的信号。

目前没有已知在野利用。修复已发布。社区也在学习并补强防线。

现在真正重要的是:保持更新、保持警觉、并且把 RSC 当成真正的服务器代码去敬畏。

如果你维护的是 Next.js 应用,或者任何用到 RSC 的系统——现在就是你升级、复查、加固安全姿态的最好时机。

安全从来不是某一个人的责任。 而这一次,生态再一次证明:共享责任,真的能救命。

全栈AI·探索:涵盖动效、React Hooks、Vue 技巧、LLM 应用、Python 脚本等专栏,案例驱动实战学习,点击二维码了解更多详情。

最后:

CSS终极指南

Vue 设计模式实战指南

20个前端开发者必备的响应式布局

深入React:从基础到最佳实践完整攻略

python 技巧精讲

React Hook 深入浅出

CSS技巧与案例详解

vue2与vue3技巧合集

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/25 0:48:10

YOLOv7模型选择指南:如何通过计算指标找到最佳部署方案

YOLOv7模型选择指南:如何通过计算指标找到最佳部署方案 【免费下载链接】yolov7 YOLOv7 - 实现了一种新的实时目标检测算法,用于图像识别和处理。 项目地址: https://gitcode.com/GitHub_Trending/yo/yolov7 在实际项目中选择合适的YOLOv7模型配置…

作者头像 李华
网站建设 2026/5/9 20:41:40

数字图像信息管理利器:JExifToolGUI全面探索

数字图像信息管理利器:JExifToolGUI全面探索 【免费下载链接】jExifToolGUI jExifToolGUI is a multi-platform java/Swing graphical frontend for the excellent command-line ExifTool application by Phil Harvey 项目地址: https://gitcode.com/gh_mirrors/j…

作者头像 李华
网站建设 2026/5/22 20:55:11

零基础转行大模型:程序员必备的技能清单与学习资源_普通程序员如何转行大模型?

本文为程序员提供转行大模型领域的详细攻略,包括明确目标方向、掌握Python等基础知识、学习Transformer架构、通过实践项目积累经验、参与开源社区、利用在线资源学习,以及构建个人品牌和寻找职业机会。文章强调理论与实践结合,提供具体学习路…

作者头像 李华
网站建设 2026/5/25 3:10:40

Open-AutoGLM如何实现数据不出设备:深入解析本地化推理的5大核心技术

第一章:Open-AutoGLM 数据不出设备实现原理 Open-AutoGLM 通过本地化推理架构确保用户数据始终保留在终端设备中,从根本上杜绝了敏感信息外泄的风险。其核心机制依赖于模型的端侧部署与加密计算策略,所有自然语言处理任务均在设备本地完成&am…

作者头像 李华
网站建设 2026/5/22 11:17:54

WebSocket连接被拒?三步搞定edge-tts语音合成难题

"明明昨天还能正常使用的语音合成功能,今天怎么就突然无法正常工作了?" 这可能是许多edge-tts用户最近的真实写照。当你兴致勃勃地准备将文字转为语音时,却收到了令人沮丧的403错误信息,这种感觉就像在高速公路上突然遇…

作者头像 李华
网站建设 2026/5/25 3:39:45

TikTok背景音乐终极提取指南:用DouK-Downloader轻松获取高清音频

TikTok背景音乐终极提取指南:用DouK-Downloader轻松获取高清音频 【免费下载链接】TikTokDownloader JoeanAmier/TikTokDownloader: 这是一个用于从TikTok下载视频和音频的工具。适合用于需要从TikTok下载视频和音频的场景。特点:易于使用,支…

作者头像 李华