Next.js 高危漏洞 (CVE-2025-66478) 实战:中招复盘与一键修复
见字如面,与大家分享实践中的经验与思考。
最近爆发的 Next.js 高危漏洞 CVE-2025-66478 影响范围极广,几乎波及 Next.js 15 的所有版本以及 16 的早期版本。虽然我已第一时间升级并重新部署了大部分相关项目,但个人服务器上一些早期基于 Next.js 的演示项目未及时处理,最终也未能幸免。

影响范围

受影响的版本及对应的修复版本如下:
此次漏洞几乎涵盖了所有的 Next.js 15 和 16 版本,主要针对启用了 App Router 和 React Server Components (RSC) 的应用。每个受影响的小版本都已发布了相应的安全补丁。
如果是纯客户端渲染 (Client-Side Rendering) 或不使用 RSC 的 Next.js 应用,则不受影响。
解决方案
在项目根目录下执行以下命令即可一键升级。升级完成后,请务必及时重新打包并部署上线。
npx fix-react2shell-next执行结果如下图所示(注:图中显示未受影响是因为我已提前完成了升级):

导致的原因
根据官方说明,该漏洞源于上游 React 的实现问题(CVE-2025-55182)。

核心概要:React Server Components 的 19.0.0、19.1.0、19.1.1 和 19.2.0 版本中存在无需认证的远程代码执行漏洞。该漏洞影响
react-server-dom-parcel、react-server-dom-turbopack和react-server-dom-webpack等组件。攻击者可通过向服务器函数端点发送恶意构造的数据,利用不安全的反序列化过程执行代码。
什么是不安全的反序列化?
当使用 React Server Components (RSC) 架构时,特别是在执行 Server Actions(服务器端操作) 或交互时,客户端(浏览器)会将数据序列化并发送给服务器。服务器端接收后,会将其“反序列化 (Deserialize)”为 JS 对象或结构,以执行相应的服务端逻辑。
问题在于,该反序列化逻辑未对“输入数据 (Payload)”进行足够严格的校验与过滤 (Validation / Sanitization)。攻击者可以构造精心设计 (Malformed / Malicious) 的 RSC 请求(例如包含特殊 Header、Multipart 数据、伪造的数据结构或属性引用等),从而绕过校验机制。
综上所述,该漏洞的根本原因在于:
React Server Components 在反序列化客户端提交的数据 (RSC Payload) 时,缺乏对数据结构和内容的充分验证,导致攻击者能够通过精心构造的数据触发服务器执行未授权代码(远程代码执行)。Next.js 作为 React 的下游框架,因此受到了连带影响。
最后
此次漏洞波及范围广、等级高,再次提醒我们在享受前沿技术带来的便利(如 RSC 的性能优势)时,也不能忽视潜在的安全风险。
安全无小事,愿大家的生产环境永远 0 error, 0 warning, 0 vulnerability!
欢迎关注公众号"Eric技术圈",原创技术文章第一时间推送。