Aug 11, 2026·7 min read·9 visits
Microsoft .NET and Visual Studio fail to restrict the resolution of external resources, enabling remote attackers to leak sensitive credentials and internal metadata via crafted files and Server-Side Request Forgery.
An information disclosure vulnerability in Microsoft .NET and Microsoft Visual Studio allows an unauthorized remote attacker to trigger outbound network requests (SSRF) and disclose sensitive environment data by leveraging untrusted inputs and user interaction.
CVE-2026-62902 is an information disclosure vulnerability that affects the Microsoft .NET runtime and SDK, as well as the Microsoft Visual Studio integrated development environment. The weakness lies within the mechanisms used to resolve and process external resources, libraries, schemas, or configurations. An attacker can exploit this behavior to force the application or system to initiate outbound network requests to an untrusted control sphere.
The attack surface is exposed through standard resource parsing interfaces, such as those that process structured configuration files, project files, or remote templates. Because these parsers do not enforce strict network or domain-level isolation boundaries, they accept and resolve arbitrary external references. This issue is categorized under CWE-829 (Inclusion of Functionality from Untrusted Control Sphere), which emphasizes the trust boundary failure.
Successful exploitation requires user interaction, meaning a victim must be persuaded to open a malicious file or load a crafted project within the affected .NET environment or Visual Studio. Once the target opens the asset, the underlying runtime engine parses the malformed configurations. This triggers an automated outbound request, bypassing internal routing controls and establishing an unexpected external connection.
The root cause of CVE-2026-62902 resides in the failure of the .NET runtime resource resolution layer to maintain a strict security boundary. Specifically, when processing structured data formats like XML, project configurations, or custom schemas, the system utilizes active resolution components. If these components are configured with default or overly permissive settings, they attempt to dynamically fetch remote dependencies or schemas over the network.
This vulnerability class is a multi-stage weakness chain involving CWE-829, CWE-693 (Protection Mechanism Failure), and CWE-918 (Server-Side Request Forgery). The security architecture fails to block or validate outbound connection endpoints, allowing the software to enter an insecure state. Consequently, the application acts as an unintended proxy, routing requests to external addresses dictated by the untrusted input.
In a standard configuration, the resource parser should restrict resolution to local paths or pre-approved, cryptographically verified domains. In the vulnerable versions of .NET and Visual Studio, the engine implicitly trusts the URI paths specified within the imported configuration schema. Because the outbound connection logic does not validate the destination IP or domain against a strict allowlist, the runtime executes the network handshake unconditionally.
To visualize the execution path, we must look at how .NET handles configuration schemas and external XML entity resolution. The vulnerability is triggered during the initialization of external resource resolvers. In affected builds, the default configurations for resolving XML schemas or external projects do not disable or restrict external network resolution. The process can be mapped as a sequence where the untrusted file dictates the lookup targets of the core runtime.
A classic manifestation of this pattern involves the XmlResolver or project parser configurations within MSBuild and the .NET compiler platform. If the engine encounters an external URI, it invokes the network stack to complete the HTTP or SMB handshake. The code block below illustrates the logical block where the runtime lacks proper validation checks prior to resolving an external reference:
// Vulnerable pattern: Resolving external schemas without restriction
public void ProcessProjectConfig(string configPath) {
XmlReaderSettings settings = new XmlReaderSettings();
// Vulnerable: XmlResolver is permitted to fetch external resources without validation
settings.XmlResolver = new XmlUrlResolver();
using (XmlReader reader = XmlReader.Create(configPath, settings)) {
while (reader.Read()) {
// Triggers outbound connection if the file contains an external URI reference
}
}
}The official Microsoft security update addresses this behavior by altering the default behavior of the resource resolution APIs. Under the patched implementation, external URI schemas are either blocked by default or processed through a sandboxed resolver that strictly limits connections to loopback or verified endpoints. Developers should verify that custom parsers explicitly disable external resolution or restrict connection scopes to trusted internal networks.
Exploitation of CVE-2026-62902 relies on social engineering or delivery vectors that convince a developer or administrator to load a malicious workspace, project file, or configuration payload. The attacker initiates the campaign by drafting a malicious .sln, .csproj, or configuration XML file containing references to an attacker-controlled external domain. Once the victim imports or loads this configuration into Visual Studio or executes a dotnet build command, the exploit flow begins.
When the vulnerable runtime encounters the external resource directive, it automatically generates an outbound connection. This request can utilize various network protocols, with HTTP/S and SMB (Server Message Block) being the primary vectors. If the connection is forced over SMB (TCP ports 139 or 445), the operating system attempts to automatically negotiate authentication, which results in the exposure of NetNTLM hashes.
Alternatively, if the outbound request is made via HTTP/S, it can target metadata services or internal APIs, constituting a Server-Side Request Forgery (SSRF) attack vector. The response payloads, credentials, or environmental configuration data can be exfiltrated back to the attacker-controlled listener. The diagram below illustrates this multi-step communication flow from the initial file interaction to the final credential disclosure.
The immediate impact of successful exploitation is high-severity information disclosure. By forcing an outbound SMB connection, an attacker can harvest the NetNTLM hashes of the user running the process. These hashes can then be subjected to offline brute-force attacks or used in NTLM relay attacks to gain unauthorized access to other local or network resources.
Within enterprise cloud environments, the impact is compounded if the application is running with high privileges. An outbound HTTP request targeting a cloud instance metadata service (such as AWS IMDS or Azure Instance Metadata Service) can lead to the retrieval of temporary IAM credentials or service tokens. This exposure can allow the attacker to escalate privileges and access cloud infrastructure assets beyond the local host.
Although the CVSS base score is established at 6.5 (Medium), the real-world impact varies significantly depending on the network configuration and user privileges. The vulnerability does not directly allow remote code execution or data modification (Integrity and Availability impacts are rated as None). However, the gathered intelligence can serve as a primary stepping stone in a broader multi-stage attack chain targeting the corporate perimeter.
The primary remediation strategy for CVE-2026-62902 is the application of the official security updates released by Microsoft in August 2026. Security administrators must identify all hosts running affected versions of .NET 8.0, 9.0, or 10.0 and upgrade them to the minimum patched versions. Similarly, developers utilizing Visual Studio 2022 or Visual Studio 2026 must update their IDE installations using the Visual Studio Installer.
In scenarios where immediate patching is not feasible, organizations can implement compensating network security controls to reduce the attack surface. Blocking outbound SMB traffic (TCP ports 139 and 445) at the network perimeter or host firewall levels prevents credential harvesting via NTLM negotiation. Additionally, outbound proxy configurations should restrict development workstations and application servers from initiating arbitrary connections to external IP ranges.
Application developers should also review their codebase to ensure that any custom XML, JSON, or project parsing logic adheres to secure coding practices. This involves explicitly disabling the resolution of external entities and validating any user-supplied URIs before processing them. Implementing strict network segmentation for build environments and continuous monitoring of outbound traffic are key lessons for ensuring long-term architectural resilience.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N| Product | Affected Versions | Fixed Version |
|---|---|---|
Microsoft .NET 8.0 Microsoft | 8.0.0 to < 8.0.30 | 8.0.30 |
Microsoft .NET 9.0 Microsoft | 9.0.0 to < 9.0.19 | 9.0.19 |
Microsoft .NET 10.0 Microsoft | 10.0.0 to < 10.0.11 | 10.0.11 |
Microsoft Visual Studio 2022 version 17.14 Microsoft | 17.14.0 to < 17.14.38 | 17.14.38 |
Microsoft Visual Studio 2026 version 18.8 Microsoft | 18.0 to < 18.8.3 | 18.8.3 |
| Attribute | Detail |
|---|---|
| CWE ID | CWE-829, CWE-693, CWE-918 |
| Attack Vector | Network (AV:N) |
| Attack Complexity | Low (AC:L) |
| Privileges Required | None (PR:N) |
| User Interaction | Required (UI:R) |
| CVSS v3.1 Score | 6.5 (Medium) |
| Exploit Status | None |
| CISA KEV Status | Not Listed |
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.
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.
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.
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.
An integer overflow or wraparound vulnerability (CWE-190) in the native layer of the .NET runtime allows local unauthenticated attackers to corrupt the native heap, leading to a heap-based buffer overflow (CWE-122) and local privilege escalation.
A critical-severity Server-Side Request Forgery (SSRF) vulnerability exists in SeaweedFS volume servers prior to version 4.24. Unauthenticated attackers can trigger arbitrary HTTP requests to internal networks and cloud metadata services via the gRPC endpoint and retrieve the response data.