.NET 构成了 Windows 及其他操作系统的核心部分,许多应用程序都使用此平台在数十亿台设备上运行。微软同时支持多个版本的 .NET,并定期敦促 IT 管理员不要运行不受支持的技术版本。这一点至关重要,因为该平台的安全漏洞可能会带来重大的供应链风险。现在,微软已为最新版本的 .NET 发布了带外安全更新。
微软指出,在“补丁星期二”发布 .NET 10.0.6 之后,有几位客户报告称其应用程序中的解密功能失败。随着这家雷德蒙德科技公司对该问题的调查,它还发现了一个更大的问题,即一个安全漏洞。
该漏洞被标记为 CVE-2026-40372,严重程度为 9.1。它允许攻击者通过伪造身份验证 Cookie 并解密某些安全负载来利用特权提升 (EoP) 漏洞。此缺陷存在于 Microsoft.AspNetCore.DataProtection NuGet 包中,其中“托管身份验证加密器可能会在负载的错误字节上计算其 HMAC 验证标签,然后丢弃计算的哈希值,这可能导致特权提升。”
微软强调,所有安装了 .NET 10.0.6 的非 Windows 操作系统都受到影响。如果满足以下所有条件,您也会受到影响:
您的应用程序或库引用了来自 NuGet 的 Microsoft.AspNetCore.DataProtection 版本 10.0.0 到 10.0.6。
构建使用了该包的 net462 或 netstandard2.0 目标框架资源。当您的应用程序不以 net10.0 为目标并消耗该包(例如,用于 mono 的 net8.0、net9.0、net481 等)时,就会发生这种情况。这种组合很不寻常,因为 10.0 NuGet 包通常用于 .NET 10。
应用程序在 Linux、macOS 或任何非 Windows 操作系统上运行。
其他一些配置也可能受到影响,您可以在此处找到更多详细信息。
https://github.com/dotnet/aspnetcore/issues/66410
为了修补此安全漏洞,微软发布了一个带外安全更新,即 .NET 10.0.7,该更新也修复了解密的回归错误。您可以从此处下载并安装它,然后在命令提示符中运行 dotnet --info 以确保您拥有最新版本。之后,使用此更新后的包重新构建并重新部署您的依赖软件。
总体而言,这是一个相当严重的问题,微软在“补丁星期二”之后如此迅速地发布带外更新也凸显了这一点。这家科技巨头表示,成功利用此漏洞的攻击者可以获得 SYSTEM 权限,从而允许他们读取文件和修改数据,因此,如果您受到影响,请务必尽快安装 .NET 10.0.7。