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·3 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

•about 2 hours ago•CVE-2026-62899
5.9

CVE-2026-62899: .NET Security Feature Bypass Vulnerability (HTTP Request Smuggling)

CVE-2026-62899 is a security feature bypass vulnerability in the Microsoft .NET runtime environment on non-Windows platforms. The flaw manifests as an HTTP Request/Response Smuggling vulnerability (CWE-444) within the managed implementation of the System.Net.HttpListener class. This allows unauthenticated remote attackers to desynchronize request boundaries when the backend .NET application is hosted behind an upstream reverse proxy.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 3 hours ago•CVE-2026-62901
7.5

CVE-2026-62901: Remote Denial of Service via Infinite Loop in .NET WebSockets Engine

CVE-2026-62901 is a high-severity Denial of Service (DoS) vulnerability in the Microsoft .NET ecosystem, specifically affecting the System.Net.WebSockets frame-processing engine and associated network transports. Under certain circumstances, a remote, unauthenticated attacker can exploit this vulnerability by sending malformed or specifically crafted WebSocket packets over the network, causing a targeted .NET application server to enter a tight infinite loop. This behavior results in 100% CPU utilization on the executing thread, starving application resources and leading to a complete Denial of Service.

Alon Barad
Alon Barad
3 views•6 min read
•about 4 hours ago•CVE-2026-62909
7.8

CVE-2026-62909: .NET Local Elevation of Privilege via Unchecked Diagnostic Socket Permissions

A high-severity Local Elevation of Privilege (EoP) vulnerability exists in the Microsoft .NET runtime and Visual Studio on Unix-like platforms. The flaw arises from an unchecked return value (CWE-252) during the initialization of the Diagnostics Inter-Process Communication (IPC) socket. By exploiting this vulnerability, a low-privileged local attacker can execute arbitrary commands with the privileges of a higher-privileged .NET process.

Alon Barad
Alon Barad
5 views•6 min read
•about 5 hours ago•CVE-2026-70354
7.8

CVE-2026-70354: Out-of-Bounds Write in .NET Windows Presentation Foundation Subsystem

CVE-2026-70354 is a high-severity local code execution vulnerability affecting multiple versions of the Microsoft .NET runtime, .NET Framework, and Microsoft Visual Studio. The vulnerability is located within the Windows Presentation Foundation (WPF) layout and rendering subsystems, specifically within the parsing and rasterization of complex graphical layouts, XPS files, or custom font structures.

Alon Barad
Alon Barad
6 views•7 min read
•about 6 hours ago•CVE-2026-62897
7.0

CVE-2026-62897: Integer Overflow and Code Execution in .NET WPF and WinForms

An integer overflow vulnerability (CWE-190) exists in the layout and rendering engines of the Microsoft .NET Framework and .NET Core. This flaw resides within the processing of complex coordinate maps, font tables, and image metadata in Windows Presentation Foundation (WPF) and Windows Forms (WinForms). By convincing a user to open a crafted vector graphic or layout document, a local attacker can exploit this arithmetic error to induce an undersized memory allocation, leading to a heap-based buffer overflow and subsequent arbitrary code execution within the context of the vulnerable application.

Alon Barad
Alon Barad
7 views•6 min read
•about 7 hours ago•CVE-2026-62871
7.8

CVE-2026-62871: Local Code Execution and Elevation of Privilege in .NET and Visual Studio

CVE-2026-62871 is a high-severity local code execution and elevation of privilege vulnerability in Microsoft .NET and Microsoft Visual Studio. It arises from an out-of-bounds write (heap-based buffer overflow) in the runtime environment during native interoperability or unmanaged pointer manipulation, requiring user interaction to execute arbitrary instructions.

Amit Schendel
Amit Schendel
8 views•7 min read