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-62898

CVE-2026-62898: Use After Free Information Disclosure in Microsoft QUIC

Alon Barad
Alon Barad
Software Engineer

Aug 12, 2026·6 min read·178 visits

Executive Summary (TL;DR)

Use-after-free in MSQuic leads to high-impact remote information disclosure of server memory.

A critical use-after-free vulnerability in Microsoft QUIC allows unauthenticated remote attackers to disclose sensitive system memory over the network. The vulnerability is caused by a race condition during rapid connection termination and asynchronous packet retransmission.

Vulnerability Overview

The Microsoft QUIC library (msquic.dll) forms the foundational transport layer for high-performance networks in the .NET runtime ecosystem. It handles state machines, packet processing, and transport-level encryption for protocols like HTTP/3. In multi-tenant or concurrent environments, this component exposes a critical network attack surface, as it directly processes raw, untrusted incoming network frames before dispatching them to the application layer.

CVE-2026-62898 identifies a critical memory lifecycle vulnerability within this transport library. The flaw is classified under CWE-416 (Use After Free). It allows an unauthenticated remote attacker to compromise system confidentiality by forcing the host to transmit sensitive process memory over the network.

Because the underlying library operates within high-privilege user-space processes (such as Kestrel web servers hosting ASP.NET Core applications), the leaked data may contain cryptographic keys, session tokens, or transaction payloads. This analysis explores the technical architecture of the vulnerability, its root causes, and remediation paths.

Root Cause Analysis

The vulnerability is located in the memory buffer synchronization mechanism between the managed .NET layer (System.Net.Quic) and the native MSQuic library (msquic.dll). To minimize garbage collection overhead, .NET pins managed byte arrays and passes their memory addresses directly to native code as zero-copy QUIC_BUFFER structures. MSQuic manages these transport buffers through high-speed internal lookaside lists and memory pools, such as CXPLAT_POOL.

A synchronization defect occurs when a connection or stream is abruptly torn down while asynchronous write operations are still pending in the queue. Under normal circumstances, MSQuic maintains an internal reference counter on active packets to prevent premature reclamation. However, a race condition exists during immediate connection terminations, such as when a CONNECTION_CLOSE or RESET_STREAM frame is processed simultaneously with an active retransmission event.

When the connection aborts, the cleanup routine prematurely decrements the reference count of the associated network buffers, freeing the memory back to the global allocator. Crucially, the pointer to this buffer remains in the asynchronous send queue or the loss-recovery retransmission queue. If another thread reallocates this memory block for a different session, the subsequent asynchronous transmission routine reads from the dangling pointer and serializes recycled data to the remote peer.

Code Analysis

The vulnerability in the .NET runtime was resolved by updating the dependency configuration to point to a patched version of the MSQuic native library. The fix is tracked in the dotnet/runtime repository.

File: eng/Versions.props
@@ -161,7 +161,7 @@
     <!-- Docs -->
     <MicrosoftPrivateIntellisenseVersion>10.0.0-preview-20251006.1</MicrosoftPrivateIntellisenseVersion>
     <!-- MsQuic -->
-    <MicrosoftNativeQuicMsQuicSchannelVersion>2.4.18</MicrosoftNativeQuicMsQuicSchannelVersion>
+    <MicrosoftNativeQuicMsQuicSchannelVersion>2.5.9</MicrosoftNativeQuicMsQuicSchannelVersion>
     <SystemNetMsQuicTransportVersion>9.0.0-alpha.1.24167.3</SystemNetMsQuicTransportVersion>
     <!-- emscripten / Node -->
     <MicrosoftNETRuntimeEmscriptenVersion>$(MicrosoftDotNetApiCompatTaskPackageVersion)</MicrosoftNETRuntimeEmscriptenVersion>

The update from MSQuic 2.4.18 to 2.5.9 implements critical architectural changes within the native packet allocation engine. In version 2.5.9, MSQuic introduces stricter ownership boundaries and memory barriers during stream destruction. This prevents the cleanup code path from releasing packets while they are registered in any active retransmission or send queues.

In the patched version, the reference counting tracking packet lifecycles covers the lifetime of both the primary transmission queue and the connection's loss recovery timers. The underlying buffer cannot be returned to the CXPLAT_POOL lookaside list until the socket layer confirms that no further retransmission attempts can occur for that specific packet identifier.

Exploitation Methodology

An attack targeting CVE-2026-62898 does not require prior authentication or specialized privileges. The adversary must establish a standard QUIC handshake with a vulnerable service, such as an HTTP/3 endpoint hosted on Kestrel in .NET 10.0, 9.0, or 8.0. Once the connection is established, the attacker must generate high volumes of concurrent stream requests to populate the server's asynchronous I/O queues.

To trigger the race condition, the attacker issues a rapid series of stream reset requests (RESET_STREAM or CONNECTION_CLOSE) immediately after transmitting payloads. Simultaneously, the attacker must induce packet loss by selectively dropping specific acknowledgement (ACK) packets sent by the server. This sequence forces the server's loss recovery state machine to schedule retransmissions of the recently closed streams.

If the race condition succeeds, the server processes the stream destruction and frees the associated transport buffers before the retransmission routine executes. When the retransmission event eventually triggers, the server reads the current contents of the freed memory block—now populated with data from concurrent server threads—and transmits it to the attacker. The attacker extracts sensitive heap remnants directly from the incoming encrypted payload without crashing the remote process.

Impact Assessment

The security impact of CVE-2026-62898 is classified as High, with a CVSS v3.1 base score of 7.5. The impact vector is evaluated as CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N. Because the vulnerability resides in the network transport layer, the attack can be executed entirely over the network without local access or user interaction.

The vulnerability is limited to information disclosure (Confidentiality: High) and does not directly support arbitrary code execution (Integrity: None, Availability: None). However, the leakage of heap memory from a high-performance web server poses a significant operational risk. The leaked buffers may contain raw HTTP request headers, session tokens, authorization headers, database queries, or TLS session keys belonging to other users.

Furthermore, because the memory pool reuse occurs silently within the native process, exploiting this flaw does not cause application crashes or trigger system alerts. This lack of crash indicators makes detection via traditional availability monitoring tools highly difficult, allowing prolonged unauthorized data collection under specific network conditions.

Remediation and Mitigation

The primary remediation for CVE-2026-62898 is applying the official security updates released by Microsoft. Developers and administrators must upgrade their .NET runtimes, SDKs, and Visual Studio installations to the designated secure versions immediately.

For .NET environments, the required secure versions are:

  • .NET 10.0: Upgrade to 10.0.11 or later.
  • .NET 9.0: Upgrade to 9.0.19 or later.
  • .NET 8.0: Upgrade to 8.0.30 or later.

For development environments running Microsoft Visual Studio, the patched versions are:

  • Visual Studio 2022: Upgrade to 17.14.38 or later.
  • Visual Studio 2026: Upgrade to 18.8.3 or later.

In scenarios where immediate patching is not feasible, organizations should evaluate whether HTTP/3 (QUIC) can be temporarily disabled at the web server layer (e.g., Kestrel configuration or reverse proxy) to fall back to HTTP/2 over standard TLS (TCP). This configuration change effectively eliminates the attack surface by bypassing the vulnerable msquic.dll state machine.

Fix Analysis (1)

Technical Appendix

CVSS Score
7.5/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Affected Systems

.NET 10.0.NET 9.0.NET 8.0Microsoft Visual Studio 2022Microsoft Visual Studio 2026

Affected Versions Detail

Product
Affected Versions
Fixed Version
.NET 10.0
Microsoft
>= 10.0.0, < 10.0.1110.0.11
.NET 9.0
Microsoft
>= 9.0.0, < 9.0.199.0.19
.NET 8.0
Microsoft
>= 8.0.0, < 8.0.308.0.30
Microsoft Visual Studio 2022
Microsoft
>= 17.14.0, < 17.14.3817.14.38
Microsoft Visual Studio 2026
Microsoft
>= 18.0, < 18.8.318.8.3
AttributeDetail
CWE IDCWE-416
Attack VectorNetwork
CVSS Score7.5 (High)
EPSS Score0.00%
Exploit StatusNo weaponized exploit available
KEV StatusNot listed in CISA KEV

MITRE ATT&CK Mapping

T1203Exploitation for Client Execution
Execution
T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-416
Use After Free

The product uses a pointer after it has been freed, which can lead to unexpected behaviors, including crashes, use of stale data, or memory corruption.

Vulnerability Timeline

Patched dependency bump committed to dotnet/runtime
2026-07-14
CVE-2026-62898 published by Microsoft
2026-08-11
CVE metadata updated
2026-08-12

References & Sources

  • [1]Microsoft Security Response Center Advisory
  • [2]CVE-2026-62898 Authorization and Record
  • [3]Fix Commit in dotnet/runtime

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

•2 minutes ago•CVE-2026-109619
9.2

CVE-2026-109619: Remote Code Execution in PHP Core via Stale Global State Memory Corruption (PHP2Shell)

CVE-2026-109619 (PHP2Shell) is a critical Use-After-Free vulnerability in the core PHP engine caused by improper global state cleanup during out-of-memory exception handling across persistent worker requests.

Alon Barad
Alon Barad
1 views•6 min read
•5 minutes ago•CVE-2026-113721
4.5

CVE-2026-113721: Unsafe Link Resolution in virtualenv File Generation

In Python virtualenv prior to version 21.14.9, activation script generators and configuration writers use Path.exists() before writing files. Because Path.exists() resolves symbolic links, it returns False for dangling symlinks. Consequently, virtualenv skips unlinking pre-planted symbolic links or hard links, writing data directly to target locations outside the intended virtual environment directory.

Amit Schendel
Amit Schendel
1 views•5 min read
•9 days ago•CVE-2026-87697
8.8

CVE-2026-87697: Untrusted Deserialization in .NET PresentationCore Clipboard Handling

A remote code execution vulnerability exists in Microsoft .NET due to untrusted data deserialization within the PresentationCore component. The flaw stems from implicit auto-conversion flags during clipboard data retrieval operations.

Alon Barad
Alon Barad
31 views•5 min read
•9 days ago•CVE-2026-70007
8.8

CVE-2026-70007: Out-of-Bounds Write Vulnerability in .NET Framework and WPF Subsystem

An out-of-bounds write vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio allows unauthenticated remote attackers to execute arbitrary code via crafted pixel-shader bytecode or auto-converted clipboard payloads.

Amit Schendel
Amit Schendel
19 views•6 min read
•10 days ago•CVE-2026-70186
7.5

CVE-2026-70186: ASP.NET Core Denial of Service Vulnerability via Framework Deadlock

ASP.NET Core contains a thread deadlock vulnerability (CWE-833) that allows an unauthenticated remote attacker to cause a denial of service over the network by exhausting server thread pool resources.

Amit Schendel
Amit Schendel
18 views•5 min read
•10 days ago•CVE-2026-70035
8.8

CVE-2026-70035: Insecure Deserialization Remote Code Execution in Microsoft .NET Framework and .NET Runtime

CVE-2026-70035 is a high-severity Remote Code Execution (RCE) vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio caused by improper handling during the deserialization of untrusted data (CWE-502). An unauthenticated attacker can execute arbitrary code within the context of the affected process by delivering a crafted serialized payload.

Amit Schendel
Amit Schendel
24 views•6 min read