在 Next.js 這個開源的 Web 開發框架中,發現了一個嚴重漏洞,攻擊者有可能借此繞過授權檢查。
該漏洞編號為 CVE-2025-29927,攻擊者利用此漏洞,無需經過關鍵的安全檢查,就能發送請求并到達目標路徑。
Next.js 是一個廣受歡迎的 React 框架,在 npm 上,每周的下載量超過 900 萬次。它被用于構建全棧 Web 應用程序,其中包含用于身份驗證和授權的中間件組件。前端和全棧開發人員借助它,通過 React 構建 Web 應用程序。一些知名公司,如 TikTok、Twitch、Hulu、Netflix、Uber 和 Nike 等,都在其網站或應用程序中使用了 Next.js。
繞過授權機制的原理
在 Next.js 中,中間件組件會在請求到達應用程序路由系統之前運行,其作用包括身份驗證、授權、日志記錄、錯誤處理、重定向用戶、實施地理封鎖或速率限制等。
為避免中間件自身陷入無限循環的重新觸發,Next.js 采用了一個名為 “x-middleware-subrequest” 的標頭,以此指示是否應應用中間件功能。負責處理傳入請求的 “runMiddleware” 函數會檢索該標頭。
一旦檢測到 “x-middleware-subrequest” 標頭具有特定值,整個中間件執行鏈就會被繞過,請求會被直接轉發到目的地。
攻擊者能夠手動發送包含正確值標頭的請求,進而繞過保護機制。據發現此漏洞并發表技術文章的研究人員 Allam Rachid 和 Allam Yasser (inzo_) 稱,“該標頭及其值就像一把通用鑰匙,能夠覆蓋規則。”
受影響版本與建議
該漏洞影響所有早于 15.2.3、14.2.25、13.5.9 和 12.3.5 的 Next.js 版本。鑒于利用此安全問題的技術細節已公開,建議用戶盡快升級到較新版本。
Next.js 的安全公告明確指出,CVE-2025-29927 僅影響使用 “next start” 和 “output: standalone” 的自托管版本。托管在 Vercel 和 Nerlify 上,或者部署為靜態導出的 Next.js 應用則不受影響。同樣受影響的,還有那些使用中間件進行授權或安全檢查,且在應用程序后期沒有驗證的環境。
若暫時無法進行修補,建議阻止外部用戶發送包含 “x-middleware-subrequest header” 的請求。
參考及來源:https://www.bleepingcomputer.com/news/security/critical-flaw-in-nextjs-lets-hackers-bypass-authorization/
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.