CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-69304

CVE-2026-69304: Denial of Service via Request Decompression Data Amplification in ASP.NET Core

Alon Barad
Alon Barad
Software Engineer

Sep 9, 2026·7 min read·5 visits

Executive Summary (TL;DR)

A Medium severity (CVSS 5.9) denial-of-service vulnerability in ASP.NET Core allows unauthenticated attackers to cause memory exhaustion and crash the server via compressed HTTP request payloads.

An Improper Handling of Highly Compressed Data (Data Amplification) vulnerability (CVE-2026-69304) exists in Microsoft ASP.NET Core and Microsoft .NET. It allows unauthenticated remote attackers to trigger resource exhaustion and denial of service via highly compressed request payloads.

Vulnerability Overview

ASP.NET Core provides support for transparent decompression of incoming HTTP request bodies through specialized middleware and hosting integrations. This capability enables servers to dynamically unpack payloads compressed using standard algorithms such as GZIP, Deflate, and Brotli. By processing these payloads on-the-fly, applications can reduce bandwidth utilization and improve throughput for clients operating under restricted network conditions.

The vulnerability identified as CVE-2026-69304 stems from improper resource management during the decompression phase. The flaw resides in how the web host handles highly compressed, redundant data structures, commonly classified under CWE-409 (Improper Handling of Highly Compressed Data). Under specific conditions, the decompression libraries inflate incoming payloads without validating the output volume against the resource constraints of the system.

The attack surface is exposed to unauthenticated remote attackers who can send crafted HTTP requests directly to endpoints utilizing request decompression. Because decompression occurs early in the request-processing pipeline, the server allocates resources before performing authentication, routing, or authorization checks. This structural design amplifies the impact of the flaw, as arbitrary network actors can trigger resource exhaustion with minimal cost.

Root Cause Analysis

The root cause of CVE-2026-69304 lies in the sequential read and expansion mechanisms of .NET decompression streams, including GzipStream, DeflateStream, and BrotliStream. When an HTTP request containing a 'Content-Encoding: gzip' header is processed, the ASP.NET Core request decompression middleware wraps the incoming network stream in an instance of the corresponding decompression class. The wrapper then reads the compressed bytes and reconstructs the original uncompressed payload in system memory.

The vulnerability occurs because the original decompression stream wrapper did not correlate the size of the compressed network payload with the cumulative length of the decompressed output. Decompression algorithms function by replacing repeating sequences of data with short pointer references. A malicious payload can contain long strings of repeating characters, such as zero bytes, which compress down to a few kilobytes but expand to multiple gigabytes of memory upon decompression.

During processing, as the server continuously pulls data from the decompression stream, it repeatedly allocates heap buffers to accommodate the rapidly expanding output. If the decompressed size exceeds available physical RAM, the .NET Garbage Collector becomes overloaded attempting to reclaim memory, leading to severe CPU starvation. Ultimately, the hosting runtime encounters an unhandled OutOfMemoryException, causing the worker process to terminate and resulting in a denial-of-service condition.

Code Analysis

To visualize the progression of an incoming compressed payload through the vulnerable stack, the sequence of events is illustrated below:

The fundamental defect is the absence of a size-limiting boundary within the decompression loop. The framework read the stream until the end of the payload was reached, relying on the client-supplied structure rather than defensive runtime constraints. The listing below represents a conceptual contrast between the vulnerable structure and the patched stream wrapper implementation:

// VULNERABLE: Reads decompression stream without tracking inflated output size
public async Task DecompressRequestAsync(HttpContext context, Stream compressedStream)
{
    using (var decompressor = new GzipStream(compressedStream, CompressionMode.Decompress))
    {
        // The buffer expands dynamically without size checks
        await decompressor.CopyToAsync(context.Response.Body);
    }
}
 
// PATCHED: Implements a size-limiting wrapper to enforce strict thresholds
public async Task DecompressRequestPatchedAsync(HttpContext context, Stream compressedStream, long maxLimit)
{
    // The framework wraps the decompression stream in a size-limiting stream
    using (var decompressor = new GzipStream(compressedStream, CompressionMode.Decompress))
    using (var limitedStream = new SizeLimitingStream(decompressor, maxLimit))
    {
        try
        {
            await limitedStream.CopyToAsync(context.Response.Body);
        }
        catch (InvalidDataException ex)
        {
            // Abruptly terminates the connection and reclaims memory resources
            context.Abort();
            throw new InvalidOperationException("Decompressed body size limit exceeded.", ex);
        }
    }
}

In the patched version, the SizeLimitingStream monitors the accumulated decompressed byte count during each read operation. If the decompressed byte count surpasses the configured limit (such as MaxRequestBodySize), the stream immediately raises an exception. This early termination prevents further memory allocations, discards the half-processed stream, and closes the connection to preserve host resources.

Exploitation Methodology

Exploitation of CVE-2026-69304 does not require valid credentials, administrative privileges, or complex pre-conditions. The primary requirement is that the targeted ASP.NET Core application must have request decompression explicitly configured and enabled. This is typical in applications that process high-volume API telemetry or large document uploads from remote clients.

An attacker begins by preparing a payload containing highly redundant, repeatable byte sequences, such as continuous arrays of hexadecimal zeros. Using a compression utility, the attacker compresses this payload, achieving an extremely high data amplification ratio (often exceeding 1:1000). The resulting compressed file remains exceptionally small, typically measuring less than 10 kilobytes, which easily bypasses standard network packet length restrictions.

The attacker then transmits this payload to any exposed endpoint on the target server using an HTTP POST or PUT request. The request is sent with the header 'Content-Encoding: gzip' (or 'deflate' / 'br') to instruct the ASP.NET Core middleware to initiate decompression. Upon receipt, the middleware immediately invokes the vulnerable stream handlers, triggering unbounded memory allocations on the server's heap until resource starvation occurs.

Impact Assessment

The primary impact of CVE-2026-69304 is a complete Denial of Service (DoS) affecting the availability of the web application. Because the runtime runs out of memory, the underlying operating system or IIS process manager terminates the worker process. In out-of-process hosting environments, this leads to persistent HTTP 502 (Bad Gateway) errors for all subsequent legitimate incoming requests.

The CVSS v3.1 base score is calculated as 5.9 (Medium) with the vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H. The Attack Complexity is classified as High (AC:H) because exploitation depends on the specific operational configuration where request decompression is actively enabled. The impact metrics are isolated to Availability, while Confidentiality and Integrity remain unaffected.

Additionally, this vulnerability presents detection challenges for security operations centers. Standard signature-based Web Application Firewalls (WAF) inspect incoming requests based on size and typical exploit patterns. Because the payload size of a decompression bomb is extremely small, it often passes through security boundaries undetected, only revealing its destructive nature once processed by the internal application server.

Remediation and Mitigation

Remediation of CVE-2026-69304 is achieved primarily by updating the underlying .NET SDK and hosting runtimes. Administrators must apply the relevant security updates released by Microsoft: upgrade to .NET 10.0.12 or higher, .NET 9.0.20 or higher, or .NET 8.0.31 or higher. Rebuilding and redeploying the application with these patched SDKs ensures that the decompression wrapper streams implement the necessary size validations.

If immediate patching is not feasible, administrators can apply temporary workarounds to reduce risk. The most direct workaround is to disable the request decompression middleware globally within the application's configuration file (typically 'Program.cs' or 'Startup.cs'). This is done by removing or commenting out the 'app.UseRequestDecompression()' middleware registration.

Alternatively, administrators should configure strict request size limits on the Kestrel server or the reverse proxy. By setting the 'MaxRequestBodySize' limit, the application will reject oversized incoming payloads before they can undergo decompression. Implementing deep packet inspection or rate-limiting rules at the reverse proxy (such as Nginx or HAProxy) can also block compressed payloads destined for endpoints that do not require them.

Official Patches

MicrosoftOfficial Microsoft Security Response Center advisory details.

Fix Analysis (3)

Technical Appendix

CVSS Score
5.9/ 10
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Probability
0.77%
Top 47% most exploited

Affected Systems

Microsoft .NET 10.0Microsoft .NET 9.0Microsoft .NET 8.0ASP.NET Core 11.0ASP.NET Core 10.0ASP.NET Core 9.0ASP.NET Core 8.0Visual Studio 2022 (v17.14)Visual Studio 2026 (v18.9)

Affected Versions Detail

Product
Affected Versions
Fixed Version
.NET 10.0
Microsoft
10.0.0 to < 10.0.1210.0.12
.NET 9.0
Microsoft
9.0.0 to < 9.0.209.0.20
.NET 8.0
Microsoft
8.0.0 to < 8.0.318.0.31
ASP.NET Core 11.0
Microsoft
11.0 to < 11.0 RC111.0 RC1
ASP.NET Core 10.0
Microsoft
10.0.0 to < 10.0.1210.0.12
ASP.NET Core 9.0
Microsoft
9.0.0 to < 9.0.209.0.20
ASP.NET Core 8.0
Microsoft
8.0.0 to < 8.0.318.0.31
Visual Studio 2022 (v17.14)
Microsoft
17.14.0 to < 17.14.4017.14.40
Visual Studio 2026 (v18.9)
Microsoft
18.9.0 to < 18.9.318.9.3
AttributeDetail
CWE IDCWE-409
Attack VectorNetwork (AV:N)
CVSS v3.1 Score5.9 (Medium)
EPSS Score0.00768
ImpactAvailability (High)
Exploit StatusNone
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1499Endpoint Denial of Service
Impact
T1499.004Resource Exhaustion
Impact
CWE-409
Improper Handling of Highly Compressed Data (Data Amplification)

The product does not sufficiently limit the resources used to decompress highly compressed data, leading to resource exhaustion.

Vulnerability Timeline

Preparations for dependency bumps and backflows start in the .NET 10 servicing branch.
2026-07-28
Servicing builds for ASP.NET Core dependency rollups (10.0.12) are officially completed.
2026-08-13
Coordinated disclosure and public publication of CVE-2026-69304.
2026-09-08
Microsoft releases the official security advisory bulletin.
2026-09-08

References & Sources

  • [1]Microsoft Security Advisory Guide (CVE-2026-69304)
  • [2]CVE Record Entry on CVE.org
  • [3]NVD Entry Details for CVE-2026-69304

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•44 minutes ago•CVE-2026-71328
8.8

CVE-2026-71328: Heap-Based Buffer Overflow in Microsoft .NET and Visual Studio Parser

A heap-based buffer overflow vulnerability (CVE-2026-71328) exists within the parser component of Microsoft Visual Studio and Microsoft .NET runtimes. This vulnerability permits an unauthenticated remote attacker to execute arbitrary code with the privileges of the running application, provided they can convince a user to load a maliciously crafted project file, solution, or stream.

Alon Barad
Alon Barad
2 views•7 min read
•about 2 hours ago•CVE-2026-69439
8.8

CVE-2026-69439: Heap-based Buffer Overflow in Microsoft .NET and Visual Studio

CVE-2026-69439 is a high-severity elevation of privilege vulnerability in Microsoft .NET and Visual Studio, originating from a heap-based buffer overflow (CWE-122) within native parsing libraries. An unauthenticated attacker can achieve code execution under the privileges of the active process by convincing a user to open a specially crafted project, metadata stream, or dependency.

Amit Schendel
Amit Schendel
7 views•6 min read
•about 3 hours ago•CVE-2026-85730
8.2

CVE-2026-85730: Infinite Loop Denial of Service in smol-toml Parser

Prior to version 1.7.1, smol-toml is vulnerable to an infinite loop Denial of Service when parsing a malformed TOML payload containing an unclosed comment inside an array or inline table.

Amit Schendel
Amit Schendel
6 views•7 min read
•about 4 hours ago•CVE-2026-69522
8.8

.NET and Visual Studio Remote Code Execution Vulnerability (CVE-2026-69522)

CVE-2026-69522 is a high-severity Remote Code Execution (RCE) vulnerability in Microsoft .NET runtimes, .NET Framework, and Visual Studio caused by a heap-based buffer overflow (CWE-122). An unauthenticated attacker can exploit this flaw by inducing a user to open a malicious project file or by transmitting crafted payloads over the network, leading to arbitrary code execution within the context of the running application.

Amit Schendel
Amit Schendel
6 views•7 min read
•about 8 hours ago•CVE-2026-84361
7.7

CVE-2026-84361: Remote Code Execution in Composer Perforce VCS Driver

A critical remote code execution vulnerability exists in the Composer PHP dependency manager due to improper neutralization of command parameters passed to the Perforce CLI client. Unauthenticated attackers can exploit this flaw via crafted package metadata in custom repositories or lock files, triggering arbitrary OS command execution when a user or automated CI/CD pipeline runs Composer commands.

Amit Schendel
Amit Schendel
7 views•6 min read
•about 9 hours ago•CVE-2026-84376
6.3

CVE-2026-84376: Authorization Bypass via Missing Path-Segment Boundary Validation in Astro

An authorization bypass vulnerability exists in the Astro web framework prior to version 7.2.4. When configured with a non-root base path, Astro's routing engine stripped the base path from incoming request URLs using an insecure prefix-match check without verifying path-segment boundaries. This created a path parser differential between user-defined middleware and the internal router. An unauthenticated attacker could bypass route-based authorization checks to access administrative or privileged endpoints by altering the path prefix segment.

Alon Barad
Alon Barad
4 views•6 min read