作者:林泰宇/臺灣大學計算機及資訊網路中心網路組北區學術資訊安全維運中心資安工程師、李美雯 / 臺灣大學計算機及資訊網路中心/程式設計師
Next.js網頁框架存在中介軟體(middleware)驗證繞過的高風險漏洞,將可允許攻擊者透過特定的 HTTP 請求標頭,繞過中介軟體的安全檢查,進而未經授權的訪問受保護的資源。
前言
Next.js是由Vercel(前身為ZEIT)於2016年推出的開源框架,旨在簡化React應用程式的開發流程,並提供伺服器端渲染(SSR)、靜態網站生成(SSG)以及增量靜態再生(ISR)等功能。此外作為一個完整的網頁開發框架,在系統架構上還增設了中介軟體(middleware)的功能,這項重要且廣泛使用的功能提供包括:路徑重寫、伺服器重定址、身份驗證和授權等。
其中,中介軟體最常見的用途是授權,即根據特定條件保護某些路徑 [1]。此漏洞(CVE-2025-29927)即發生在Next.js框架中的中介軟體處理機制設計缺陷,允許攻擊者透過偽造特定的 HTTP 請求標頭,繞過中介軟體的安全檢查,進而未經授權地訪問受保護的資源。本文將詳細說明該漏洞發生的原因以及相關防護措施。

圖1. CVE通報頁面,資料來源:NIST Nation Vulnerability Database [2]
漏洞發生原因及攻擊手法
漏洞是由 Next.js 框架中 middleware.ts 處理邏輯所觸發 [3]。中介軟體設計原意是攔截進入網頁應用服務的 HTTP 請求,並根據需求實作如:身份驗證、A/B 測試等安全或控制邏輯。然而,Next.js 在設計中未對請求標頭 x-middleware-subrequest 的來源與合法性進行嚴格驗證,使攻擊者可自行構造並偽造此標頭(header),以繞過原本應進行的安全檢查流程。
攻擊者可在發送請求至任何受中介軟體保護的端點路徑(如登入後台、管理 API)時加入含有此標頭的請求x-middleware-subrequest: /target/path。該標頭原本設計用途是由 Next.js 系統內部自動添加,用以標示子請求(如 /next/image 或 /next/data 等),讓中介軟體繞過驗證以提升效能。但由於該標頭未被嚴格限制只能由伺服器端生成,攻擊者可於客戶端直接添加,自行偽裝為內部請求,以下是漏洞產生的詳細解釋:
- Next.js 中介軟體原始設計問題:
在 Next.js 在請求進入後會先觸發 middleware.ts,而這個中介軟體可攔截所有網頁路徑訪問請求。開發者通常會在中介軟體內實作如 session 驗證、API 保護等邏輯,若中介軟體檢測到 x-middleware-subrequest,會略過此段邏輯,認為該請求來自 Next.js 自身流程。
- 攻擊者偽造標頭繞過中間:
由於伺服器未限制 x-middleware-subrequest 標頭的可用性,攻擊者可構造請求繞過驗證,此時中介軟體跳過驗證邏輯,直接將請求放行至受保護資源(如管理頁面、受限 API)。
- 利用請求未經驗證即被處理:
由於這種請求將導致後端資源錯誤地認為是合法內部子請求,進而觸發以下風險︰
- 未經授權讀取個人或系統資料
- 執行受限 API 操作(如刪除用戶資料、修改權限)
- 快取或內容污染(CSP header 被略過導致 XSS)
- 大量請求繞過 rate limit,觸發 DDoS 或爆破攻擊
- 利用中介軟體保護作用於高度敏感功能:
- 由於這些路徑常依賴中介軟體實作防護,中介軟體實作防護,一旦被繞過,即可能導致任意用戶資料暴露或未授權操作。常見受影響路徑包括:
- /admin
- /api/user/info
- /api/payment
- /dashboard
- /profile
漏洞驗證
為了驗證攻擊者應用該漏洞進行攻擊的可行性及風險,可以參考Github所公布的研究以及相關攻擊腳本 [4] [5],使用git clone下載進行操作,並使用Kali Linux環境進行漏洞驗證。並可於Shodan中搜尋具有漏洞版本且可以公開存取的Next.js應用服務,透過POC指令訪問檢測介面;亦或是使用Burp Suite對漏洞進行手動驗證測試。本次驗證將以個人撰寫的curl指令作為驗證方法,檢測學術網路是否存在受該漏洞影響之設備,其驗證步驟如以下所示:
- 使用在Kail Linux環境中的以Curl作為測試主要指令。Curl將可以對目標URL進行遠端通訊,獲取或提交數據。Curl指令如圖2所示,以下指令內容說明如下:
- –v:表示回復詳細資訊,可以看到完成的HTTP交互內容及過程,包含:請求標頭(headers)、伺服器回應標頭、連線細節(port、IP等)
- https://<targetIP>/path:為訪問指定目標URL以及指定路徑。
- –H:自動HTTP請求的header
- 設置Host值為TargetIP為告訴伺服器客戶端正在訪問的域名或 IP 地址。
- 設置X-Middleware-Subrequest: 為伺服器的中介軟體與識別子請求,用來處理特定路徑的驗證邏輯,值為middleware:middleware:middleware為觸發中介軟體漏洞的關鍵參數。
- User-Agent:為模擬特定客戶端瀏覽器發送的請求,為了測試真實瀏覽器行為對伺服器進行請求操作。

圖2. CURL指令,來源:自行整理
- Curl指令的完整功能將可以對目標的IP的伺服器路徑發送HTTP的請求,並使用指定的標頭(header)參數傳入目標的目錄,且使用完整回傳指令。若允許訪問成功,將可直截讀取敏感文件訊息並回傳,及成功觸發漏洞。因此從系統回復中可以了解,該指令已經成功觸發中介軟體漏洞,在未驗證的狀態下對訪問目標頁面如圖3所示。

圖3. 使用curl指令顯示成功訪問,來源:自行整理
- 取得回傳數據後,可以驗證系統回傳的HTML頁面,如圖4,是否與原本的內容有所差異,並且可以訪問相關未經授權即可訪問的頁面內容。

圖4. 訪問未授權頁面,來源:自行整理
影響範圍
針對Next.js框架中,存在中介軟體繞過漏洞(CVE-2025-29927),此漏洞主要影響使用中介軟體進行身份驗證或授權的 Next.js 應用服務,特別是自行部屬與管理與的應用服務,受影響的版本包括:
- 版本>= 13.0.0,< 13.5.9
- 版本> = 14.0.0,< 14.2.25
- 版本>= 15.0.0,< 15.2.3
- 版本>= 11.1.4, < 12.3.5
由於Next.js框架被企業及個人用戶廣泛使用,若用戶未對該漏洞進行修復,將可能導致以下問題:
- 驗證繞過:
- HTTP訪問請求觸發該漏洞,若用戶使用中介軟體進行如: 登入驗證、權限控管等驗證。將直接繞過安全驗證,可以直接訪問受中介軟體保護的敏感頁面取得內部資訊,將可能導致資料外洩或漏洞攻擊。
- 內容安全政策(CSP)繞過:
- 中介軟體中設定CSP標頭以防止XSS攻擊,攻擊者也將可以利用該漏洞繞過保護機制,進行網頁的注入攻擊,植入惡意腳本,迫使使用者在瀏覽網頁時訪問惡意網站,將可能被竊取cookie以及植入木馬程式。

圖5. 訪問未授權頁面,資料來源: zhero_web_security [1]
- API請求操控:
- Next.js支援使用中介軟體進行API流量控制,如:IP訪問限制以及token的驗證。因此攻擊者可藉此繞過限制,進行黑名單IP防火牆繞過、API防護失效(bot偵測、rate limit)、以及無授權執行敏感API請求等攻擊方式。
- 快取汙染:
- 中介軟體進行快取行為判斷,如儲存使用者登入資訊於快取中。攻擊者在繞過中介軟體後可以發送請求,觸發錯誤的快取資訊,讓使用者存取錯誤內容,將使未登入者看到登入者的頁面,造成資料外洩。

圖6. 訪問未授權頁面
緩解及補救措施
為避免該漏洞被惡意利用,Next.js官方已針對含有漏洞的版本提供修補,並且強烈建議盡快升級至已修復版本:
- 針對版本>= 11.1.4;< 12.3.5,漏洞已於12.3.5修復。
- 針對版本>= 13.0.0;< 13.5.9,漏洞已於13.5.9修復。
- 針對版本> = 14.0.0;< 14.2.25,漏洞已於14.2.25修復。
- 針對版本>= 15.0.0;< 15.2.3,漏洞已於15.2.3修復。
相關緩解措施如下所述:
- 版本更新:
立即更新至官方建議的最新版本。Next.js 官方在新版本中已完全移除對 x-middleware-subrequest 的依賴。
- 過濾對x-middleware-subrequest標頭的請求:
在CDN(如 Cloudflare)、Nginx、Vercel config 中加入過濾規則:
- 拒絕包含此header的請求。
- 從 request中移除此標頭再轉發。
- 檢查現有中介軟體邏輯是否安全:
- 確保中介軟體不可由使用者任意操控 header、cookie 來決定跳過或執行條件。
- 對於驗證邏輯,建議設置在API handler 或 SSR logic 中搭配 session token 驗證作為第二層保障。
- 加強CSP政策:
- 即便中介軟體失效,若HTML Tags中正確設置了meta或HTTP CSP 標頭,也能提供額外防禦。
- 設置 Content-Security-Policy-Report-Only 並整合報告至安全監控系統。
- 增強防護機制:
使用像是Cloudflare、AWS WAF、或Runtime保護工具來辨識可疑流量與header manipulation行為。
結論
Next.js 是一個現代、功能完整、效能優化的全端 React 開發框架,從基本的網頁路徑訪問管理、API 製作到伺服器端渲染及中介軟體控制,皆有良好的預設與擴充能力。因此CVE-2025-29927的嚴重性不容忽視,受影響的Next.js框架版本極易被利用,特別是該漏洞允許攻擊者建立惡意請求,繞過中介軟體的驗證防護,將可能導致系統未經授權訪問與潛在資料外洩風險。因此企業應立即將版本更新為官方修補版、限制未更新漏洞的存取,並使用新的防火牆規則阻擋異常請求、監控可疑活動,及早發現攻擊跡象,降低漏洞帶來的風險。此外建立定期的安全更新與稽核流程,是確保系統長期安全穩定運作的最佳實踐方法。
然而,該漏洞CVSS評分雖為Critical等級,但組織若非使用單一中介軟體進行相關驗證,並且做好框架的版本更新,即可減少漏洞對系統的危害。
- Rachid.A, “Next.js and the corrupt middleware: the authorizing artifact,” zhero_web_security, 2025.
- N. V. Database, “CVE-2025-29927 Detail,” National Institute of Standards and Technology, 2025.
- next.js, “next.js Github page,” vercel, 2016.
- aydinnyunus, “CVE-2025-29927: Next.js Middleware Bypass Vulnerability,” aydinnyunus, 2025.
- RosanaFSS, “Next.js : CVE-2025–29927 : TryHackMe Walkthrough, Web Exploitation,” TryHackMe, 2025.