跳至主要內容
>_ITDITD網站資安平台

資安指南

Next.js 和 React 的漏洞很多嗎?CVE 資料實際顯示的情況

我們查詢了 NVD:Next.js 有 56 個 CVE(2026 年 28 個),React 有 6 個,而近期 React 的 CVE 全部都在 Server Components。風險不在前端程式碼,而在框架現在提供的伺服器功能。

發布於 2026-08-22 更新於 2026-10-04 最後核實 2026-08-22 閱讀時間 4 分鐘

本文對象:在正式環境中執行 Next.js 的團隊,以及正在考慮是否採用它的人。目的是把模糊的「框架的 CVE 很多」的感覺,換成實際的數字,以及其中的內容。

資料(NVD,截至 2026 年 8 月 22 日)

56
與 Next.js 相關的 CVE(累計)
28
其中 2026 年發布的數量,是前一年的兩倍
6
與 React 相關的 CVE(累計)
5/5
近期 React 的 CVE 全部在 RSC,也就是伺服器端
Next.jsReact
累計566
依年份2020:1/2021:3/2022:3/2023:1/2024:6/2025:14/2026:282018:1/2025:4/2026:1
嚴重程度CRITICAL 2、HIGH 21、MEDIUM 29、LOW 4CRITICAL 1、HIGH 3、MEDIUM 2
最嚴重的單一項目CVE-2025-29927:在 middleware 中進行驗證時的授權繞過(CVSS 9.1)CVE-2025-55182:React Server Components 中驗證前的 RCE(CVSS 10.0)

如何解讀 CVE 數量

數量多不代表技術危險。越多人採用,研究就越多,而研究越多,回報也越多。數量少可能代表「安全」,也可能代表「沒有人在看」。數量只是起點;判斷要依據問題出現在哪裡、屬於哪一類。本文的數字來自依 CPE(vercel:next.js、facebook:react)查詢 NVD 的結果,所以沒有指定 CPE 的項目不會被計入。

出現在哪裡

把 2025–2026 年發布的 Next.js CVE,依說明中提到的功能分類:

位置樣貌
快取快取混淆與污染:一個使用者的回應被提供給另一個使用者
Middleware/路由授權繞過:你以為受 middleware 保護的路由被通過了
圖片最佳化透過擷取遠端 URL 造成的 SSRF 和資源耗盡
Server Actions/RSC不可信任請求內容的反序列化;由請求造成的過載
rewrites/redirects對轉送目標的解讀不一致

CWE 的分布也說明了同一件事:CWE-770(不受控制的資源配置)、CWE-918(SSRF)、CWE-502(反序列化)、CWE-400(資源耗盡)、CWE-444(請求解讀不一致)、CWE-288/285(授權繞過與失敗)。這是一份伺服器和代理的弱點清單。

瀏覽器端:React 渲染元件

React 本身在 NVD 中只有一個 CVE,來自 2018 年

伺服器端 1:React Server Components

近期 React 的五個 CVE 全部在這裡(最嚴重:驗證前 RCE)

伺服器端 2:Next.js 的 middleware/快取/圖片最佳化/rewrites

授權繞過、SSRF、快取污染、資源耗盡

被稱為「React/Next.js 漏洞」的問題,幾乎全部發生在這張圖的下半部,也就是伺服器端。

一再出現的問題:在 middleware 中授權

反覆出現的模式,比任何單一 CVE 都更重要。

  1. 2025 年 3 月:CVE-2025-29927(CVSS 9.1)

    帶有特定標頭的請求,可以繞過在 middleware 中執行的授權檢查。已在 12.3.5/13.5.9/14.2.25/15.2.3 修正。
  2. 2026 年 5 月:CVE-2026-44574(CVSS 8.1)

    刻意構造的查詢參數,可以在不改變可見路徑的情況下改變頁面看到的動態路由值,不通過 middleware 檢查就渲染出受保護的內容。已在 15.5.16/16.2.5 修正。
  3. 2026 年 7 月:CVE-2026-64642(CVSS 8.2)

    在使用 Turbopack 的 App Router 上,且 config.i18n.locales 只有一個項目時,刻意構造的請求可以繞過基於 middleware/代理的驗證。已在 16.2.11 修正。

這迫使我們得出的設計結論

十八個月內出現三次高嚴重度的 middleware 授權繞過。這不是一連串個別的實作錯誤,而是當判斷在路由之前做出、而該路由的解讀可能改變時,必然會發生的事。本站的立場:把 middleware 留作第一道粗略的檢查,並在存取資料前再做一次真正的授權判斷(在頁面、路由處理程式或資料層中)。把檢查寫兩次的成本,比一次繞過造成的損害更低。

有些取決於你的託管方式

容易被忽略的是:同一個 CVE 對你的影響,可能因是否自行託管而不同。CVE-2026-44578(CVSS 8.6)允許在使用內建 Node.js 伺服器的自行託管部署上,透過刻意構造的 WebSocket 升級請求進行 SSRF,可能到達內部服務或雲端中繼資料端點;而公告指出 Vercel 託管的部署不受影響。

所以「Next.js 的漏洞」不是單一的東西。是否適用,取決於你如何執行它,以及使用了哪些功能。

該做什麼

1

授權兩次(價值最高)

把 middleware 的檢查留作第一道粗略的檢查,並在存取資料前立即再判斷一次。上述三次繞過都能因此被擋下。關於區分這兩個概念,請看驗證與授權的差別。

2

為伺服器可以擷取的對象設定允許清單

限制圖片最佳化會載入的遠端 URL、伺服器端 fetch 的目的地,以及 rewrite 的目標。SSRF 問題在對外目的地不受限制的地方造成的損害最大。也請確認你的雲端中繼資料端點是否能從應用程式連到。

3

讓 Server Action 和 RSC 端點受到驗證保護

這些是反序列化請求內容的路徑,而 CWE-502 的 CVE 確實曾在這裡出現。不要讓它們留在驗證之外,套用速率限制,並確保非預期的資料無法讓程序停止。請把它們當成 /api 一樣對待。

4

讓更新成為機制

Next.js 的修正發布得很快,但只有在你更新時才有幫助。具體做法(以實際執行的版本判定、自動監控相依套件)請看安全維運 Next.js和osv-scanner 入門。一年 28 個 CVE,靠人工注意是跟不上的。

本站的看法:選擇框架的問題不在於數量

「Next.js 的 CVE 很多,所以應該避免使用嗎?」這是錯誤的問題。資料顯示的是,Next.js 穩定地承擔了越來越多伺服器的責任:它在 middleware 中授權、擷取遠端圖片、持有快取、反序列化請求。實際上,一個相依套件同時給了你反向代理和應用程式伺服器。所以該評估的不是數量,而是你實際使用了哪些伺服器功能,以及由誰來防禦它們。關閉不需要的;在需要的功能周圍加上雙重的自有控制。這樣看待,選擇就不再是喜好問題,而是關於你的維運能力的問題。

資料來源

  • NVD(NIST):2026 年 8 月 22 日查詢 cpe:2.3:a:vercel:next.js 和 cpe:2.3:a:facebook:react 得到的數字
  • CVE-2025-29927(middleware 授權繞過)/CVE-2026-44574(動態路由值的改變)/CVE-2026-64642(App Router + Turbopack 的驗證繞過)
  • CVE-2026-44578(自行託管的 WebSocket SSRF;Vercel 託管不受影響)
  • CVE-2025-55182(React Server Components 中驗證前的 RCE,CVSS 10.0)/CVE-2026-23864(RSC 阻斷服務)

延伸閱讀

FAQ

QNext.js 的漏洞很多嗎?
A

以數量來說,是的,而且數量在增加。2026 年 8 月 22 日查詢 NVD,與 Next.js 相關的 CVE 有 56 個:2024 年發布 6 個、2025 年 14 個、2026 年 28 個。但不要把數量多解讀成「危險的技術」;越多人採用,研究就越多,回報也隨之增加。重要的是問題出現在哪裡,而不是有多少個。

QReact 的漏洞很少嗎?
A

作為瀏覽器端 UI 函式庫的 React,漏洞非常少:NVD 中有 6 個。而且除了 2018 年的一個之外,近期的全部都與在伺服器上執行的 React Server Components(react-server-dom-parcel/turbopack/webpack)有關。其中的 CVE-2025-55182 是驗證前的遠端程式碼執行,評分為 CVSS 10.0。

Q那實際的風險在哪裡?
A

在伺服器功能。近期 Next.js 的 CVE 集中在 middleware、快取、圖片最佳化、Server Actions 和 rewrites,主要的 CWE 是 SSRF(CWE-918)、不可信任資料的反序列化(CWE-502)、不受控制的資源消耗(CWE-770/400)和授權失敗(CWE-285/288)。這些都與你怎麼寫元件無關。

Q最值得改變的是什麼?
A

四件事:(1) 不要只依賴 middleware 做授權,繞過問題已經一再出現;(2) 為圖片最佳化、伺服器端 fetch 和 rewrites 的對外目的地設定允許清單;(3) 讓 Server Action 和 RSC 端點受到驗證和速率限制的保護;(4) 讓更新成為機制,而不是意願。第 1 點最重要,因為同樣形態的繞過在 2025 年和 2026 年都出現了。