CVE-2026-47302

Allocation of Resources Without Limits or Throttling
Affects
.NET
in
.NET
No items found.
Versions
System.Security.Cryptography.Xml >= 6.0.0 < 6.0.2
Exclamation circle icon
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 (DoS) vulnerability (CVE-2026-47302) has been identified in the XML Encryption and XML Signature stack of the System.Security.Cryptography.Xml component, which allows attackers to exhaust CPU and memory on an application that processes attacker-influenced XML. A crafted document can chain an unbounded number of transforms, forcing the library to instantiate and run every one of them during signature verification or decryption.

Per CWE-770: Allocation of Resources Without Limits or Throttling, the product allocates a reusable resource or group of resources on behalf of an actor without imposing any restrictions on the size or number of resources that can be allocated, in violation of the intended security policy for that actor.

This issue affects .NET 6. On .NET 6, System.Security.Cryptography.Xml is not part of the shared framework; it ships as an opt-in NuGet package (https://www.nuget.org/packages/System.Security.Cryptography.Xml), so only applications that add an explicit package reference to it are exposed.

Details

Module Info

Vulnerability Info

This High-severity vulnerability is found in the System.Security.Cryptography.Xml package as shipped for .NET 6. When the library loads the <Transforms> element of a Reference or CipherReference, TransformChain.LoadXml reads every ds:Transform child and instantiates it. The loop rejects the empty case but places no upper bound on the number of transforms:

XmlNodeList transformNodes = value.SelectNodes("ds:Transform", nsm);
if (transformNodes.Count == 0)
    throw new CryptographicException(SR.Cryptography_Xml_InvalidElement, "Transforms");

_transforms.Clear();
for (int i = 0; i < transformNodes.Count; ++i)
{
    // ...
    transform.LoadInnerXml(transformElement.ChildNodes);
    _transforms.Add(transform);
}

Any application that verifies a signature with SignedXml or decrypts a document with EncryptedXml runs this path over attacker-supplied XML. A document carrying a very long transform chain (for example an encoded-DTD amplification payload with dozens of chained transforms) multiplies the work and allocation performed per document, with no privileges or user interaction required, producing an availability impact.

The fixed releases cap the transform-chain length. The bound is configurable through the AppContext switch System.Security.Cryptography.Xml.MaxTransformsPerChain (default 20); setting it to 0 disables the limit for callers that legitimately need longer chains.

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:
    • System.Security.Cryptography.Xml >= 8.0.4
    • System.Security.Cryptography.Xml >= 9.0.18
    • System.Security.Cryptography.Xml >= 10.0.10
  • Leverage a commercial support partner like HeroDevs for post-EOL security support, including NES for .NET 6.0.43 or later.

Credits

Microsoft credits Levi Broderick of Microsoft for reporting this vulnerability.

Vulnerability Details
Severity
Level
CVSS Assessment
Low
>=0 <4
Medium
>=4 <6
High
>=6 <8
Critical
>=8 <10
High
ID
CVE-2026-47302
PROJECT Affected
.NET
Versions Affected
System.Security.Cryptography.Xml >= 6.0.0 < 6.0.2
NES Versions Affected
Published date
August 3, 2026
≈ Fix date
July 16, 2026
Fixed in
Category
Allocation of Resources Without Limits or Throttling
Vex Document
Download VEXHow do I use it?
Sign up for the latest vulnerability alerts fixed in
NES for .NET
Rss feed icon
Subscribe via RSS
or

By submitting the form I acknowledge receipt of our Privacy Policy.

Thanks for signing up for our Newsletter! We look forward to connecting with you.
Oops! Something went wrong while submitting the form.