CVE-2026-96960
Patch Available.
This Vulnerability has been fixed in the Never-Ending Support (NES) version offered by HeroDevs.
Overview
.NET is a free, open-source, cross-platform framework for building modern apps and powerful cloud services. It consists of a runtime and a developer platform made up of tools, programming languages, and libraries for building many different types of applications.
A denial of service vulnerability (CVE-2026-96960) has been identified in the XML decryption transform of .NET's Signed XML implementation, System.Security.Cryptography.Xml, which allows an unauthenticated attacker to exhaust CPU on an application that verifies or decrypts attacker-supplied XML containing many EncryptedData elements.
Per CWE-405: Asymmetric Resource Consumption (Amplification), the product does not properly control situations in which an adversary can cause the product to consume or produce excessive resources without requiring the adversary to invest equivalent work or otherwise prove authorization.
This issue affects .NET 6, including NES for .NET releases through 6.0.46. System.Security.Cryptography.Xml ships in-box in the ASP.NET Core and Windows Desktop shared frameworks, so every ASP.NET Core, WPF, and Windows Forms application carries it without a package reference, and it is also published as a standalone NuGet package. Applications are exposed when they verify signatures that use the XML decryption transform, or decrypt untrusted XML through EncryptedXml. Microsoft's advisory lists the System.Security.Cryptography.Xml package for 8.0, 9.0, 10.0 and the 11.0 previews as affected; .NET 6 is past end of life and is not assessed there.
Additionally, if you've deployed self-contained applications targeting any of the impacted versions, these applications are also vulnerable and must be recompiled and redeployed.
Details
Module Info
- Product: .NET
- Affected packages: Microsoft.AspNetCore.App and Microsoft.WindowsDesktop.App (in-box copies of System.Security.Cryptography.Xml); System.Security.Cryptography.Xml (standalone NuGet package)
- Affected versions:
- Microsoft.AspNetCore.App, Microsoft.WindowsDesktop.App
>= 6.0.0 <= 6.0.46 - System.Security.Cryptography.Xml
>= 6.0.0 <= 6.0.2.2
- Microsoft.AspNetCore.App, Microsoft.WindowsDesktop.App
- Package manager: NuGet, Windows Installer, Docker
- GitHub repository: https://github.com/dotnet/runtime
- Published packages: Download .NET (Linux, macOS, and Windows); System.Security.Cryptography.Xml on NuGet
- Fixed in: NES for .NET 6.0.47 (System.Security.Cryptography.Xml 6.0.2.3)
Vulnerability Info
This High-severity vulnerability is found in XmlDecryptionTransform, the http://www.w3.org/2002/07/decrypt#XML transform in System.Security.Cryptography.Xml as shipped for .NET 6. After decrypting each EncryptedData element, the transform searched the whole document again and queued every remaining EncryptedData candidate, so the number of candidates processed grew quadratically with the number of elements. The July 2026 fix for CVE-2026-50525 capped the number of elements decrypted but not the number of candidates queued.
NES for .NET 6.0.47 counts every queued candidate and every EncryptedXml.DecryptData call against the per-operation budget of 256 (AppContext setting System.Security.Cryptography.Xml.DangerousMaxDecryptionCount). The CVE-2026-50525 cap moves into DecryptData, so it now covers every decryption path.
Compatibility note: at the default limits, CheckSignature now throws a CryptographicException when one decryption transform covers about 23 or more sibling EncryptedData elements. This matches Microsoft's behavior. Applications that legitimately process such documents can raise the limit.
CVE-2026-58280, CVE-2026-69651, CVE-2026-96958, CVE-2026-96959 and CVE-2026-96960 were reported separately and are addressed together by the same Signed XML hardening in NES for .NET 6.0.47.
This vulnerability has been present since at least .NET 6.0 and likely earlier.
Mitigation
.NET 6 is End-of-Life and will not receive any updates to address this issue. For more information see .NET and .NET Core official support policy.
Users of the affected components should apply one of the following mitigations:
- Upgrade affected applications to one of:
- NES for .NET 6.0.47 or later
- System.Security.Cryptography.Xml 8.0.5 or later (.NET 8)
- System.Security.Cryptography.Xml 9.0.21 or later (.NET 9)
- System.Security.Cryptography.Xml 10.0.13 or later (.NET 10)
- Microsoft's advisory also directs .NET 8, 9 and 10 users to install the October runtime (8.0.32, 9.0.21 or 10.0.13), which updates the in-box copy.
- Leverage a commercial support partner like HeroDevs for post-EOL security support, including NES for .NET 6.0.47 or later. Applications with an explicit System.Security.Cryptography.Xml package reference should also move it to 6.0.2.3 from the NES feed, because NuGet otherwise keeps resolving Microsoft's unpatched 6.0.2. Review the compatibility note above.
Credits
Coşkun Bağrıaçık and Dr.-Ing Ashar Javed (@soaj1664ashar), as credited in Microsoft's advisory.