微软紧急发布补丁修复ASP.NET Core高危漏洞,macOS与Linux用户须警惕

微软于近日紧急发布了针对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分)。