微軟於近日緊急發布了針對ASP.NET Core的安全補丁,以修復一個高危漏洞。該漏洞允許未經身份驗證的攻擊者在使用該Web開發框架運行Linux或macOS應用程序的設備上獲取SYSTEM級別權限。
微軟表示,此漏洞被追蹤編號為CVE-2026-40372,影響Microsoft.AspNetCore.DataProtection NuGet包的10.0.0至10.0.6版本,該包是ASP.NET Core框架的組成部分。漏洞根源在於對加密簽名的驗證存在缺陷,攻擊者可藉此在HMAC驗證過程中偽造身份驗證載荷——而HMAC驗證正是用於確保客戶端與伺服器之間數據交換的完整性與真實性的核心機制。
在用戶運行存在漏洞版本的期間,未經身份驗證的攻擊者可獲取敏感的SYSTEM權限,從而完全控制底層設備。即便漏洞修復後,若威脅行為者創建的身份驗證憑據未被清除,設備仍可能處於被攻陷狀態。
微軟指出:"如果攻擊者在漏洞存在期間利用偽造的載荷以特權用戶身份完成身份驗證,可能已誘使應用程序向其頒發合法簽名的Token(如會話刷新Token、API密鑰、密碼重置鏈接等)。升級至10.0.7版本後,除非輪換DataProtection密鑰環,否則這些Token仍然有效。"
微軟將ASP.NET Core定位為"高性能"Web開發框架,支持編寫可在Windows、macOS、Linux及Docker上運行的.NET應用程序。該開源包的設計目標是"讓運行時組件、API、編譯器及編程語言能夠快速疊代演進,同時為應用程序的持續運行提供穩定且受支持的平台"。
事情的起因是,微軟上周發布了該包的更新版本,隨後在調查用戶反映的新版本解密失敗問題時,發現了一個回歸漏洞:託管身份驗證加密器會"對載荷中錯誤的字節計算HMAC驗證標籤,並隨即丟棄所計算的哈希值,這可能導致權限提升"。CVE-2026-40372的最高嚴重性評分為9.1分(滿分10分)。
微軟建議:"如果您的應用程序使用了ASP.NET Core數據保護功能,請儘快將Microsoft.AspNetCore.DataProtection包更新至10.0.7版本,以解決解密回歸問題和安全漏洞。"
受影響的用戶主要是在macOS、Linux或其他非Windows作業系統上實際運行了10.0.6版本的用戶。發生此情況通常滿足以下條件之一:應用程序未以Microsoft.NET.Sdk.Web為目標,或直接或間接引用了Microsoft.AspNetCore.App框架,且用戶未主動禁用PrunePackageReference選項(該選項在.NET 10中默認啟用)。
另有少部分用戶受到影響,條件為其非Windows應用程序或庫同時滿足:使用了任意存在漏洞的版本並引用了相關Microsoft.AspNetCore.DataProtection版本,且構建過程中使用了該漏洞包的net462或netstandard2.0目標框架資產。Windows應用程序不受此漏洞影響,因為DataProtection在Windows上默認使用不含該漏洞的加密器。
如前所述,更新版本僅是修複流程的第一步。若應用程序在使用存在漏洞版本期間曾對外提供網際網路訪問的端點服務,用戶還應及時輪換DataProtection密鑰環。微軟同時建議受影響用戶對該時間段內可能生成的應用層長期有效產物進行審查,這類產物在密鑰輪換後仍將繼續有效,必須在應用層面進行單獨處理和輪換。
更多詳細操作指引,請參閱微軟官方文檔。
Q&A
Q1:CVE-2026-40372漏洞具體影響哪些版本的ASP.NET Core?
A:該漏洞影響Microsoft.AspNetCore.DataProtection NuGet包的10.0.0至10.0.6版本。主要受影響的是在macOS、Linux等非Windows作業系統上實際運行了10.0.6版本的用戶。Windows應用程序由於默認使用不含該漏洞的加密器,因此不受此漏洞影響。
Q2:更新到10.0.7版本後,ASP.NET Core漏洞就完全修復了嗎?
A:僅更新版本並不足夠。如果應用程序在漏洞存在期間曾對外提供網際網路訪問的端點服務,還需要輪換DataProtection密鑰環。此外,攻擊者在漏洞窗口期內獲取的合法簽名Token(如API密鑰、密碼重置鏈接等)在更新後依然有效,必須在應用層面對這些長期有效的產物進行逐一審查和輪換處理。
Q3:CVE-2026-40372漏洞是如何被發現的?
A:該漏洞是微軟在調查用戶反饋時意外發現的。上周微軟發布了包的更新版本,隨後收到用戶報告稱新版本出現解密失敗問題。在排查過程中,微軟發現了一個回歸漏洞:託管身份驗證加密器會對載荷中錯誤的字節計算HMAC驗證標籤,並丟棄計算結果,從而造成潛在的權限提升風險,最終嚴重性評分高達9.1分(滿分10分)。






