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

CVE-2026-32177: Heap-Based Buffer Overflow in .NET Core and Visual Studio

Alon Barad
Alon Barad
Software Engineer

May 19, 2026·6 min read·142 visits

Executive Summary (TL;DR)

A heap-based buffer overflow in the .NET runtime allows local privilege escalation when users open maliciously crafted files in vulnerable host applications like Visual Studio.

CVE-2026-32177 is a high-severity heap-based buffer overflow affecting multiple versions of Microsoft .NET and Visual Studio. Triggered by insufficient input validation during file processing, the vulnerability permits local privilege escalation when a user opens a specially crafted file.

Vulnerability Overview

CVE-2026-32177 is a high-severity vulnerability within the Microsoft .NET runtime and Visual Studio ecosystem. The flaw resides in the file parsing subsystem, which handles specialized .NET Core artifacts. An attacker can leverage this component to corrupt memory and alter program execution flow.

The vulnerability is classified as a heap-based buffer overflow (CWE-122) resulting from improper input validation (CWE-20). The runtime fails to verify the size of incoming data structures before copying them into memory. This omission permits an attacker to write data beyond the allocated boundaries of a heap buffer.

Exploitation results in local elevation of privilege (LPE). The attacker must supply a crafted file to a local user and rely on the victim to process the file with a vulnerable application. Successful exploitation grants the attacker the ability to execute arbitrary code within the security context of the host application.

Root Cause Analysis

The root cause of CVE-2026-32177 lies in the insufficient boundary checking mechanism during the processing of crafted file artifacts. When the .NET runtime encounters specific file fields, it reads a user-supplied length parameter. The parser trusts this length value without validating it against the maximum expected size or the allocated destination buffer size.

Following the length extraction, the runtime allocates a memory chunk on the heap. Depending on the specific execution path, this allocation may use a fixed size or a miscalculated value. The discrepancy between the allocated size and the incoming payload size establishes the conditions for memory corruption.

A subsequent memcpy or equivalent block copy operation transfers the file data into the newly allocated heap buffer. Because the copy operation uses the unvalidated length parameter, it writes past the end of the buffer. This overflow overwrites adjacent heap metadata and application data.

The overwritten memory segments typically contain critical data structures, such as object headers, virtual method tables (vtables), or function pointers. Modifying these structures allows the attacker to hijack the control flow predictability when the application attempts to use the corrupted objects.

Code Analysis

The vulnerability stems from a common pattern in memory management within the unmanaged portions of the .NET runtime, specifically within clr.dll or coreclr.dll. The parser function extracts a data segment length from the file structure and allocates a buffer without enforcing strict boundary limits.

// Conceptual representation of vulnerable parsing logic
uint32_t payload_length = ReadUInt32FromFile(file_stream);
 
// VULNERABILITY: Allocation occurs without bounding payload_length
void* destination_buffer = HeapAlloc(GetProcessHeap(), 0, payload_length);
 
// Copy operation blindly trusts payload_length, exceeding expected limits
ReadFileData(file_stream, destination_buffer, payload_length);

The patch implements mandatory bounds checking and integer overflow protections. Microsoft addresses this by introducing a maximum size constraint and validating the payload length before triggering the heap allocation. If the length exceeds the expected boundary, the parser returns an error and aborts the file processing operation.

// Conceptual representation of patched parsing logic
uint32_t payload_length = ReadUInt32FromFile(file_stream);
 
// FIX: Introduce strict boundary validation against a known constant
if (payload_length > MAX_ALLOWED_PAYLOAD_SIZE || payload_length == 0) {
    return ERROR_INVALID_DATA;
}
 
void* destination_buffer = HeapAlloc(GetProcessHeap(), 0, payload_length);
if (!destination_buffer) {
    return ERROR_OUTOFMEMORY;
}
 
ReadFileData(file_stream, destination_buffer, payload_length);

Exploitation Methodology

Exploitation of CVE-2026-32177 requires the attacker to position a malicious file on the target system. The attack vector is local (AV:L), meaning the adversary must deliver the payload via phishing, removable media, or network shares. The exploit relies on the victim initiating the parsing process by opening the file in a .NET application or an IDE like Visual Studio.

Upon opening the file, the unmanaged runtime components invoke the vulnerable parsing routines. The crafted payload triggers the heap allocation and subsequent overflow. The attacker meticulously constructs the payload padding to ensure the overflow targets specific adjacent objects in the memory heap.

The payload typically overwrites a vtable pointer of a neighboring object. When the application later invokes a virtual method on this corrupted object, execution redirects to a memory address controlled by the attacker. This transition marks the shift from memory corruption to arbitrary code execution.

The final stage involves the execution of the attacker's shellcode or return-oriented programming (ROP) chain. If the victim runs the vulnerable application with administrative privileges, the attacker inherits these elevated rights. This sequence results in full local elevation of privilege and subsequent system compromise.

Impact Assessment

The CVSS v3.1 base score for CVE-2026-32177 is 7.3, reflecting a high-severity local attack. The vector (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:L) specifies that the attack complexity is low. No initial privileges are required by the attacker, but user interaction is strictly necessary to trigger the vulnerability.

Successful exploitation compromises system confidentiality and integrity. The attacker gains the ability to read arbitrary memory, exfiltrate sensitive data, and modify system configurations within the context of the user running the application. The direct impact on system availability is rated as low, although the host process may crash if the exploit fails to stabilize the heap properly.

The Exploit Prediction Scoring System (EPSS) assigns a probability of 0.00096 (0.10%) for exploitation within the next 30 days, placing it in the 26.27th percentile. As of the initial disclosure date, there is no public proof-of-concept (PoC) code. The vulnerability is currently unlisted in the CISA Known Exploited Vulnerabilities (KEV) catalog.

Remediation and Detection

Microsoft released comprehensive security updates for all affected products during the May 2026 Patch Tuesday cycle. Organizations must prioritize patching .NET Core implementations (versions 8.0, 9.0, and 10.0), legacy .NET Framework instances, and Visual Studio installations. Deploying the updated runtime components resolves the vulnerability by enforcing proper input validation and memory bounds checking.

Environments unable to patch immediately should enforce the principle of least privilege. Users must not operate development tools or execute unverified applications with administrative rights. Restricting execution privileges limits the potential impact of a successful control flow hijack to the standard user's permissions.

Security teams should implement host-based monitoring to detect anomalous application behavior. Analysts must review system logs for APPCRASH events associated with clr.dll, coreclr.dll, or mscorwks.dll. Exception codes such as 0xc0000409 (indicating a fast fail, often tied to buffer overruns) and 0xc0000005 (Access Violation) indicate potential exploitation attempts or failed heap grooming procedures.

Official Patches

MicrosoftMicrosoft Security Response Center Advisory for CVE-2026-32177

Technical Appendix

CVSS Score
7.3/ 10
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:L
EPSS Probability
0.10%
Top 74% most exploited

Affected Systems

.NET 10.0.NET 9.0.NET 8.0Microsoft .NET Framework 3.5Microsoft .NET Framework 4.7.2Microsoft .NET Framework 4.8Microsoft .NET Framework 4.8.1Microsoft Visual Studio 2022Microsoft Visual Studio 2026

Affected Versions Detail

Product
Affected Versions
Fixed Version
.NET 10.0
Microsoft
10.0.0 to 10.0.710.0.8
.NET 9.0
Microsoft
9.0.0 to 9.0.159.0.16
.NET 8.0
Microsoft
8.0.0 to 8.0.268.0.27
Microsoft .NET Framework 3.5, 4.7.2, 4.8, 4.8.1
Microsoft
All prior to patch4.8.9334.0 / 4.8.4802.0
Microsoft Visual Studio 2022
Microsoft
17.12.0 to 17.12.19, 17.14.0 to 17.14.3017.12.20 / 17.14.31
Microsoft Visual Studio 2026
Microsoft
18.5.0 to 18.5.218.5.3
AttributeDetail
CWE IDCWE-122
Attack VectorLocal (AV:L)
CVSS v3.1 Score7.3 (High)
EPSS Probability0.10%
Primary ImpactLocal Elevation of Privilege
Exploit StatusUnexploited / No PoC
CISA KEVNot Listed

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1204.002User Execution: Malicious File
Execution
T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-122
Heap-based Buffer Overflow

The product copies data to a memory buffer without verifying that the size of the data does not exceed the size of the allocated buffer.

Vulnerability Timeline

CVE Reserved by Microsoft
2026-03-11
Initial Disclosure and Publication by MSRC and NVD
2026-05-12
NVD record updated with refined CVSS and CWE data
2026-05-18

References & Sources

  • [1]MSRC Advisory
  • [2]CVE.org Record
  • [3]NVD Record
  • [4]ZDI May 2026 Review
  • [5]OffSeq Threat Radar
  • [6]Rapid7 Analysis
  • [7]Sophos Blog

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

•32 minutes ago•CVE-2026-92940
10.0

CVE-2026-92940: Host-Realm Credential Exposure and Socket Hijacking via globalAgent in vm2

A critical vulnerability in the Node.js sandbox library vm2 allows sandboxed code to retrieve the process-wide http.globalAgent and https.globalAgent singletons. By attaching event listeners to these host-realm emitters, sandboxed code can intercept host-realm network requests, capturing sensitive Authorization headers and hijacking active TLSSocket streams.

Amit Schendel
Amit Schendel
1 views•9 min read
•about 2 hours ago•CVE-2026-92950
9.3

CVE-2026-92950: Sandbox Escape Vulnerability in vm2 CLI

CVE-2026-92950 (GHSA-jxxv-8r27-vm4p) is a critical sandbox escape vulnerability in the command-line interface of the vm2 library prior to version 3.11.7. The flaw allows untrusted scripts to bypass sandbox constraints and execute arbitrary system commands with the privileges of the host process by exploiting insecure default configurations of the module resolver.

Amit Schendel
Amit Schendel
4 views•5 min read
•about 3 hours ago•CVE-2026-92948
9.9

CVE-2026-92948: Sandbox Escape and Remote Code Execution in vm2 via node:test

CVE-2026-92948 is a critical sandbox escape vulnerability in the vm2 library affecting versions 3.9.6 through 3.11.6 when executed on Node.js 24 and newer. The vulnerability allows an attacker to bypass built-in module blocking defenses by double-prefixing a restricted module name (such as node:node:test). This permits the loading of the node:test module, whose test runner execution can be leveraged to execute arbitrary shell commands outside the VM sandbox.

Amit Schendel
Amit Schendel
7 views•6 min read
•about 4 hours ago•CVE-2026-92952
8.9

CVE-2026-92952: Sandbox Escape and State Corruption in vm2 via Node.js-internal Symbol Leak

A high-severity sandbox escape and state corruption vulnerability exists in the vm2 library (versions 3.11.4 through 3.11.6). The vulnerability is caused by an incomplete blocklist of Node.js-internal registered symbols crossing the sandbox-host bridge boundary. Specifically, the filters in `lib/setup-sandbox.js` and write traps in `lib/bridge.js` omitted the symbols `nodejs.stream.disturbed` and `nodejs.stream.errored`, allowing untrusted code within the sandbox to corrupt host-realm stream state checks.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 5 hours ago•CVE-2026-73607
5.8

CVE-2026-73607: Missing Authorization in SiYuan /api/storage/getOutlineStorage Leads to Information Disclosure

An architectural evaluation of CVE-2026-73607 in the SiYuan personal knowledge management system. This technical advisory details a Missing Authorization (CWE-862) vulnerability in the Go-based backend kernel, specifically within the outline storage API endpoint. Under certain configurations, authenticated low-privilege users can query metadata, heading structures, and block hierarchies of restricted documents.

Amit Schendel
Amit Schendel
7 views•7 min read
•about 6 hours ago•CVE-2026-73609
5.8

CVE-2026-73609: Missing Authorization in SiYuan Note getBookmarkLabels Endpoint

An information disclosure vulnerability (CWE-862) in the SiYuan Note platform before version v3.7.4 allows anonymous or unprivileged readers to obtain a complete list of bookmark labels globally across all workspaces and notebooks by querying the `/api/attr/getBookmarkLabels` API endpoint.

Alon Barad
Alon Barad
6 views•6 min read