前端技术新闻(WTN-1):React.js & Next.js 爆出 CVSS 10.0 级严重漏洞,历史风险回顾与代码级深度分析

我也将开个新系列,用于整理一些前端/web hybrid相关的具有一定影响的技术新闻

近期,React Server Components 与 Next.js App Router 爆出了 CVSS 10.0 的远程代码执行漏洞(RCE) ,波及 React 19 与 Next.js 15.x/16.x 的大量项目。本篇文章将面向技术人员和架构师,系统回顾 React/Next 的典型历史漏洞,并从 协议层 → 代码层 → 利用链机制 深度分析本次事件,同时给出可落地的工程级安全建议。

这次的影响还算是不小的,不少企业受到了类似攻击。不知道大家是否还记得几个月前,cloudflare因为useEffect导致无限循环出现业务中断呢,这个框架用的时候还是要小心啦~ 越是标榜"安全"、"用户量大" 的技术,出的问题可能越多,有时候纯粹是

"大意了!


一、React.js 历史典型安全事件回顾

1. CVE-2018-6341 ------ SSR 渲染属性名注入导致 XSS

React 16 时代,SSR 渲染存在一个严重漏洞:

攻击者可将恶意字符串作为 属性名 注入,SSR 会错误地输出到 HTML 中,从而触发 XSS。

修复版本:React ≥ 16.4.2


2. CVE-2025-8101 ------ linkify-react 原型污染导致 XSS

第三方生态库 linkify-react 存在原型污染问题:

js 复制代码
import linkifyHtml from 'linkify-html';

const opts = {
  attributes: {
    __proto__: {
      onclick: "alert('XSS via prototype pollution')"
    }
  }
};

console.log(linkifyHtml('victim.com', opts));

最终输出:

html 复制代码
<a href="http://victim.com" onclick="alert('XSS via prototype pollution')">victim.com</a>

允许直接插入事件处理器,引发 XSS。


3. Next.js 中间件 SSRF 事件(CVE-2025-57822)

Next.js 某些版本的中间件中:

js 复制代码
NextResponse.next({ headers: request.headers });

将客户端 header 原样转发触发 SSRF,例如伪造 x-forwarded-host 等头部。

正确方式:

js 复制代码
return NextResponse.next({ req: request });

二、2025 Next.js & React 爆出 CVSS 10.0 RCE 漏洞(重点)

漏洞编号

  • CVE-2025-55182(React Server Components)
  • CVE-2025-66478(Next.js App Router)
  • CVSS 评分:10.0(最高级)

又被成为 React2Shell,因为可以通过提供虚构的框架action,执行shell命令,可参考log4j

受影响范围:

  • Next.js 15.x / 16.x
  • React 19 + RSC(App Router 默认开启)
  • Pages Router 不受影响

三、漏洞利用原理:从协议到代码的完整攻击链剖析

本次漏洞本质是 "不安全反序列化 + 原型污染 → 任意服务器函数调用 → RCE"

1. 攻击入口:伪造的 Flight 协议 Payload

React Server Components 使用 Flight Protocol在客户端和服务端之间传输序列化数据。

攻击者构造恶意 payload,伪造:

  • 服务器函数引用(Server Action ID)
  • 原型链注入字段
  • Promise "then" 回调映射

在未修复版本中,React 会:
➜ 无校验反序列化 ➜ 执行攻击者控制的 promise.then 代码


2. 关键危险点:可控 Promise.then 执行

攻击者可将 payload 解析成:

js 复制代码
Promise.resolve().then(require('child_process').execSync.bind(null, 'cat /etc/passwd'));

服务端解析 Flight 数据 → 自动执行该 promise → RCE。

官方确认这是漏洞的核心成因。


3. Next.js 被攻破的原因

Next.js App Router 默认启用:

  • Server Actions
  • RSC
  • 自动请求路由映射

导致攻击者只需向 任意可访问的 Server Action 路径 发请求,即可触发解析逻辑。


4. 真实攻击后果(已被官方证实)

攻击者可:

  • 读取 .env、DB 密钥
  • 读取/写入任意文件
  • 执行系统命令
  • 注入恶意 SSR HTML
  • 窃取用户信息、Session、API Token

四、修复建议(工程可落地)

1. 立即升级依赖(最关键)

jsonc 复制代码
{
  "dependencies": {
    "react": ">=19.2.1",
    "react-dom": ">=19.2.1",
    "react-server-dom-webpack": ">=19.2.1",
    "next": ">=16.0.7"
  }
}

修复版本添加了:

  • 严格的 hasOwnProperty 检查
  • 禁止 prototype chain 访问
  • 禁止任意函数引用调用

2. 中间件增强(防 SSRF、假冒头部)

避免危险写法:

js 复制代码
NextResponse.next({ headers: request.headers });

改用:

js 复制代码
return NextResponse.next({ req: request });

并加入白名单校验:

js 复制代码
const allowedHosts = ['my.com', 'api.my.com'];
if (!allowedHosts.includes(request.nextUrl.hostname)) {
  return NextResponse.redirect('https://my.com');
}

3. 对 Server Actions 增加允许列表(强烈推荐)

js 复制代码
export async function handleAction(params) {
  const allowed = ['createUser', 'deleteItem'];
  if (!allowed.includes(params.action)) {
    throw new Error('Action not allowed');
  }
}

确保不会意外调用任意 exports。


4. 隔离敏感逻辑(架构级防御)

建议:

  • 业务 API 独立为 纯后端服务
  • RSC 仅用于 UI 数据读取,不执行敏感操作
  • 所有 Server Actions 强制加认证(例如 JWT、HMAC)

5. 持续依赖安全管理

推荐工具:

  • npm audit
  • Snyk
  • Dependabot
  • GitHub Security Alerts

示例:

bash 复制代码
npx snyk test

五、总结:RSC + Next.js 的组合属于"默认危险模式"

React RSC 设计初衷是"零客户端 JS + 服务端逻辑自动化",但这也意味着:

反序列化越来越复杂 → 自动执行链越来越危险 → 漏洞威力呈指数级增长。

这次 CVSS 10.0 漏洞再次证明:

任何自动执行反序列化逻辑的框架,都必须谨慎使用。
默认开启 = 默认高风险。

建议所有团队:

  • 重新审视是否需要使用 RSC / Server Actions
  • 将敏感逻辑移出 Next.js 应用
  • 强制设置 API 白名单与认证
  • 使用工具持续监控依赖风险
  • 第一时间升级到修复版本

最后说一句,全栈开发切记:

务必不要给非开发环境设置万能操作窗口!开发环境也最好少用,尤其是基于前端参数构建操作的那种

使用switch 或者 if 比 直接拼接要安全的多

React Blog 更新说明

相关推荐
崔庆才丨静觅17 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby606117 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了17 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅17 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅18 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅18 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment18 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅19 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊19 小时前
jwt介绍
前端
爱敲代码的小鱼19 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax