前言

近日,Next.js生态曝出最高级别安全漏洞CVE-2025-55182,其CVSS评分达10.0(严重程度最高),攻击者可通过特制请求实现远程代码执行(RCE),对使用相关技术栈的生产环境构成极大威胁。作为当前前端开发领域最流行的服务端渲染框架之一,Next.js的该漏洞覆盖范围广、攻击门槛低,需要高度关注并及时处置,因此这篇文章将会讲解介绍并验证修复该漏洞。

受影响范围

关于CVE-2025-55182漏洞Next.js 是已确认受影响的主要框架,但所有基于 RSC 的实现都可能受影响,同事核心受影响场景需同时满足使用App Router和启用React Server Components(RSC)两大条件,具体覆盖情况如下:

  • 受影响版本:Next.js 15.x全系列、Next.js 16.x全系列、14.3.0-canary.77及之后的测试版本;
  • 涉及核心包:react-server-dom-turbopack、react-server-dom-webpack,覆盖浏览器、边缘计算、Node.js全环境及开发/生产全构建模式;
  • 安全场景:使用Pages Router的项目、运行于Edge Runtime的应用、14.3.0-canary.77之前的测试版本,均不受该漏洞影响。

通过下面几点确认是否在漏洞影响范围:

  1. 框架版本是否在受影响范围内:检查是否使用 Next.js 15.x 或 16.x,或任何依赖 React 19 + RSC 的框架。
  2. 是否启用了 React Server Components(RSC):包括 Next.js App Router 默认启用的 RSC 机制;如果项目使用此功能,则风险较高。
  3. 依赖组件中是否包含 react-server 系列包:如 react-server、react-server-dom-webpack、react-server-dom-turbopack 等,只要存在这些包,就可能受影响。
  4. 是否部署在可被外部访问的环境中:公开 Web 服务会暴露攻击面,即使是默认模板项目也可能开箱即存在风险。
  5. 是否使用基于 RSC 的第三方方案:如 RedwoodJS、React Router 预览版、Vite/Parcel RSC 插件等,它们如果引用受影响依赖,同样属于风险范围。

开发者只要逐项核对以上点,即可快速判断自己的系统是否需要修补或升级。

一、漏洞核心信息速览

CVE-2025-55182是存在于Next.js编译后React Server DOM相关包中的原型污染漏洞,其核心风险点聚焦于requireModule函数的逻辑缺陷。该漏洞打破了JavaScript对象的属性访问边界,为攻击者提供了注入恶意代码的可乘之机。
从漏洞基础属性来看,其具备三大显著特征:一是危害等级极高,CVSS 10.0的评分意味着攻击者无需复杂前置条件即可完成攻击;二是影响范围广泛,覆盖Next.js 15.x全系列、16.x部分版本及14.3.0-canary.77之后的测试版本;三是利用成本低,仅需构造特制请求即可触发,无需获取额外权限。

二、漏洞根源:原型污染的“链式攻击”

要理解CVE-2025-55182的危害,首先需明确其技术本质——原型污染漏洞。JavaScript作为基于原型的编程语言,所有对象都通过“原型链”实现属性继承,最终指向Object.prototype。当程序未对对象属性的访问权限进行严格校验时,攻击者便可通过操纵__proto__等特殊属性污染原型,进而影响所有继承自该原型的对象。
该漏洞的触发链路十分清晰:Next.js的requireModule函数负责模块属性的请求与加载,但在核心逻辑中缺少关键的hasOwnProperty校验步骤。这意味着当攻击者请求模块属性时,函数会直接遍历原型链查找属性,而非仅局限于模块自身的直接属性。攻击者可利用这一缺陷,通过构造包含__proto__的恶意请求参数,向Object.prototype注入恶意属性。

例如,攻击者可通过请求注入类似__proto__.maliciousFunc=xxx的恶意代码,由于原型链的继承特性,该恶意属性会被所有JavaScript对象继承。当应用程序后续调用相关对象属性时,便会触发恶意代码执行,最终实现远程服务器的权限控制,形成完整的攻击闭环。这种攻击方式无需破坏现有代码结构,隐蔽性极强,难以被常规日志监控发现。

技术细节

漏洞本质: 逻辑反序列化漏洞
触发条件: 处理攻击者控制的 RSC 负载
攻击路径: 通过特制 HTTP 请求触发
利用方式: 构造恶意请求实现远程代码执行

三、漏洞验证与复现

1. 验证环境

这次使用的设备是天枢平台的两台 openEuler 22.03sp4 服务器和一台交换机模拟企业级虚拟专用网络场景。
本实验基于以下环境配置:​

  • 操作系统: Openeuler 22.03 sp4
  • 验证平台: 天枢一体化虚拟仿真平台
    在这里插入图片描述
    本次复现选用OpenEuler 22.03 SP4作为服务器系统,整体环境依赖 Git、NVM、Node.js 等工具,具体搭建步骤如下:

2. 环境搭建

验证poc

git clone https://github.com/0xHyperia/CVE-2025-55182-poc.git
cd CVE-2025-55182-poc

安装依赖

dnf install git

安装 nvm

[root@localhost ~]# curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16631  100 16631    0     0  32586      0 --:--:-- --:--:-- --:--:-- 32545
=> Downloading nvm from git to '/root/.nvm'
=> 正克隆到 '/root/.nvm'...
remote: Enumerating objects: 384, done.
remote: Counting objects: 100% (384/384), done.
remote: Compressing objects: 100% (328/328), done.
remote: Total 384 (delta 42), reused 178 (delta 28), pack-reused 0 (from 0)
接收对象中: 100% (384/384), 392.46 KiB | 565.00 KiB/s, 完成.
处理 delta 中: 100% (42/42), 完成.
* (头指针在 FETCH_HEAD 分离)
  master
=> Compressing and cleaning up git repository

=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

在这里插入图片描述
配置 nvm 环境变量
在这里插入图片描述
检查 nvm 版本

[root@localhost ~]# nvm --version
0.40.3

在这里插入图片描述
安装 node

nvm install 24

在这里插入图片描述
验证 Node 版本

[root@localhost ~]# node -v
v24.11.1
[root@localhost ~]# npm -v
11.6.2

在这里插入图片描述
进入验证项目

[root@localhost ~]# cd CVE-2025-55182-poc/

安装依赖

[root@localhost CVE-2025-55182-poc]# npm install
npm warn deprecated react-server-dom-webpack@19.0.0: Critical Security Vulnerability in React Server Components

added 131 packages, and audited 132 packages in 3s

21 packages are looking for funding
  run `npm fund` for details

1 critical severity vulnerability

To address all issues, run:
  npm audit fix --force

Run `npm audit` for details.
npm notice
npm notice New patch version of npm available! 11.6.2 -> 11.6.4
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.6.4
npm notice To update run: npm install -g npm@11.6.4
npm notice

在这里插入图片描述
启动漏洞环境端口 3002

Start vulnerable server (port 3002)

在这里插入图片描述

[root@localhost CVE-2025-55182-poc]# node --conditions react-server --conditions webpack src/server.js
Loading: /root/CVE-2025-55182-poc/node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js
decodeAction: function
Server at http://localhost:3002
Manifest: [ 'fs', 'child_process', 'vm', 'util' ]

访问漏洞页面
在这里插入图片描述

3. 漏洞验证

利用条件

  1. 无需身份验证:攻击者不需要任何账号权限
  2. 无需用户交互:无需受害者点击或操作
  3. 网络可达性:只要服务器对外可访问即可
  4. 本地拉取 poc 执行验证

在这里插入图片描述

4. 漏洞修复

紧急处理步骤

  • 立即升级:优先升级到修复版本
  • 全面扫描:检查所有 Next.js 应用的版本
  • 安全审计:审查服务器日志,检查是否有异常访问
  • 凭证重置:如果怀疑被攻击,重置所有敏感凭证

官方修复版本
Next.js 官方已发布修复版本,建议按版本线升级:

# Next.js 15.x 系列升级
npm install next@15.0.5  # 15.0.x
npm install next@15.1.9  # 15.1.x
npm install next@15.2.6  # 15.2.x
npm install next@15.3.6  # 15.3.x
npm install next@15.4.8  # 15.4.x
npm install next@15.5.7  # 15.5.x

# Next.js 16.x 系列升级
npm install next@16.0.7  # 16.0.x

# Canary版本降级
npm install next@14  # 降级到14.x稳定版

临时缓解措施
如果无法立即升级,可以考虑以下临时措施:

// 临时WAF规则示例
function wafMiddleware(req, res, next) {
  const forbiddenPatterns = [
    /eval\(/,
    /new Function/,
    /require\(/,
    /process\./,
    /global\./
  ];
  
  if (req.body && typeof req.body === 'string') {
    for (const pattern of forbiddenPatterns) {
      if (pattern.test(req.body)) {
        return res.status(403).send('Forbidden');
      }
    }
  }
  next();
}

总结

VE-2025-55182 是一个典型的框架级高危漏洞,暴露了现代 Web 开发中依赖管理的重要性。
该漏洞的严重性在于:

  • 影响范围广: 几乎所有使用 Next.js App Router 的现代 Web 应用
  • 攻击门槛低: 无需身份验证,无需用户交互
  • 危害程度高: 可导致完全的服务器控制权丢失

建议所有 Next.js 开发者立即行动,检查并升级到安全版本,确保应用安全。

参考资料
React 官方安全公告

最后更新时间: 2025 年 12 月 4 日
安全等级: 紧急(Critical)
修复优先级: 最高(P0)

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐