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

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

Amit Schendel
Amit Schendel
Senior Security Researcher

Oct 13, 2026·6 min read·4 visits

Executive Summary (TL;DR)

A heap-based out-of-bounds write vulnerability (CWE-787) in the Windows Presentation Foundation (WPF) graphics subsystem (CPSTrans::Initialize) and Clipboard API routines allows remote code execution when a targeted application processes malicious graphics assets or clipboard data.

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.

Vulnerability Overview

CVE-2026-70007 is an out-of-bounds write vulnerability impacting the Microsoft .NET Framework, .NET runtime environments, and Microsoft Visual Studio. The flaw resides within the Windows Presentation Foundation (WPF) graphics rendering component (milcore / wpfgfx) and managed data handling routines in PresentationCore. These components process complex graphical structures and clipboard data abstractions across managed applications.

The primary attack vector involves the processing of pixel-shader bytecode models (such as PS_2_0 and PS_3_0) and coerced clipboard objects. When a WPF-enabled application processes a malformed payload, internal allocation sizing calculations fail. This causes the runtime to allocate insufficient buffer space for shader instructions, leading to dynamic heap memory corruption during subsequent write operations.

Successful exploitation allows an unauthenticated remote attacker to execute arbitrary code within the context of the user operating the target application. Depending on the process privileges, an attacker could gain full system control, inspect memory contents, or execute unauthorized software. Microsoft assigned this vulnerability a CVSS v3.1 base score of 8.8 with low attack complexity.

Root Cause Analysis

The underlying root cause stems from a multi-pass parsing desynchronization within the native WPF graphics engine (milcore / wpfgfx), specifically inside CPSTrans::Initialize. When processing pixel-shader bytecode streams, the parser operates in two distinct execution passes: Pass 1 calculates required memory allocations based on instruction tokens, while Pass 2 decodes instruction opcodes and writes translated structures into the allocated buffer.

A logical inconsistency between Pass 1 and Pass 2 allows malformed bytecode streams—such as payloads containing invalid register indices or altered stream lengths—to bypass sizing checks. During Pass 1, stream boundaries are evaluated incorrectly, leading to an under-calculated heap allocation size. When Pass 2 subsequently processes the stream, it writes decoded payload structures beyond the allocated memory boundary into adjacent heap memory, resulting in an out-of-bounds write (CWE-787).

A secondary vulnerability path exists in PresentationCore.dll within the managed System.Windows.Clipboard implementation. Functions like GetTypedDataIfAvailable hardcoded autoConvert: true during data retrieval operations. This allowed incoming clipboard streams to execute unconditional type conversions across untrusted format types, bypassing intended strict format boundaries and increasing exposure to malformed inputs.

Code Analysis

Analysis of the patch commits reveals modifications across both managed clipboard conversion routines and native font subsetting checks. In PresentationCore/System/Windows/clipboard.cs, the static helper GetTypedDataIfAvailable<T> was updated to dynamically evaluate format auto-conversion permissions rather than forcing data coercion unconditionally.

The managed fix enforces dynamic verification via IsDataFormatAutoConvert(format) to prevent unwanted format conversion paths during clipboard data extraction. The modified code path is structured as follows:

// Unpatched implementation:
private static T? GetTypedDataIfAvailable<T>(string format)
{
    IDataObject? data = GetDataObject();
    if (data is ITypedDataObject typed)
    {
        return typed.TryGetData(format, autoConvert: true, out T? value) ? value : default;
    }
    if (data is IDataObject dataObject)
    {
        return dataObject.GetData(format, autoConvert: true) is T value ? value : default;
    }
    return default;
}
 
// Patched implementation:
private static T? GetTypedDataIfAvailable<T>(string format)
{
    IDataObject? data = GetDataObject();
    bool autoConvert = IsDataFormatAutoConvert(format);
 
    if (data is ITypedDataObject typed)
    {
        return typed.TryGetData(format, autoConvert, out T? value) ? value : default;
    }
 
    if (data is IDataObject dataObject)
    {
        return dataObject.GetData(format, autoConvert) is T value ? value : default;
    }
 
    return default;
}

Additionally, in the native TrueType subsetting module TtfDelta/modtable.cpp, bounds checking logic was updated to validate subtable sizes against the explicit 32-bit table directory size (TTTableLength) rather than relying solely on the 16-bit header length field (KernSubHeader.length):

// Patched validation in TtfDelta/modtable.cpp:
if ((uint32)usKernFormat0Size + ulPairsSize > TTTableLength(pOutputBufferInfo, KERN_TAG))
    return ERR_GENERIC;

This explicit length check prevents integer truncation conditions when processing table structures larger than 64 KB, blocking potential memory write overflows.

Exploitation Dynamics

Exploitation of CVE-2026-70007 requires delivering a malformed graphics asset, document, or payload to a system running a vulnerable .NET runtime or Visual Studio installation. Common attack vectors include embedding manipulated pixel-shader bytecode or TrueType fonts inside documents, standalone WPF executables, or web applications rendered via PresentationHost.exe.

The attack scenario requires user interaction, such as opening an untrusted file or copying malicious data into the active clipboard. Once processed by the WPF runtime, CPSTrans::Initialize evaluates the payload and allocates heap memory based on the flawed sizing pass. As the second pass executes, controlled byte sequences overwrite memory past the buffer boundary.

Because the bug manifests as a heap-based out-of-bounds write (CWE-787), an attacker capable of manipulating process heap layout can overwrite execution control pointers or object vtables to achieve arbitrary code execution. The attack operates within the security context of the target application without requiring local privilege escalation. No public proof-of-concept exploits or active exploitation in the wild have been reported at publication time.

Impact Assessment

The overall security impact of CVE-2026-70007 is High, reflected by its CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H). Successful exploitation compromises confidentiality, integrity, and system availability by allowing arbitrary code execution under the privileges of the target user process.

On enterprise workstations, an attacker executing code via a rendered document could exfiltrate confidential files, install persistent backdoors, or move laterally across local network segments. On developer systems running Visual Studio, payload execution could lead to source code access or compromised build output pipelines.

While the vulnerability requires user interaction (UI:R), the attack complexity is rated Low (AC:L) because no complex timing constraints or race conditions are required once the malicious stream is loaded. Organizations deploying unpatched .NET runtime channels face persistent client-side operational risk.

Remediation Strategy

The primary remediation for CVE-2026-70007 is applying official security patches released by Microsoft on October 13, 2026. System administrators must upgrade affected .NET runtime installations to patched release versions: .NET 8.0 to 8.0.32 or higher, .NET 9.0 to 9.0.21 or higher, .NET 10.0 to 10.0.13 or higher, and .NET 11.0 to 11.0.0-rc.2.

For systems utilizing .NET Framework, security updates should be deployed based on the underlying Windows operating system and target framework version (e.g., updating .NET Framework 4.8.1 to build 4.8.9363.0 or higher). Developer environments running Visual Studio must update Visual Studio 2022 to build 17.14.42 or later and Visual Studio 2026 to build 18.10.4.

In environments where immediate patch deployment is delayed, security teams should implement least-privilege administrative controls and restrict file execution from untrusted network locations. Endpoint detection mechanisms should monitor for anomalous child process creation originating from PresentationHost.exe or heap crash anomalies in wpfgfx_v0400.dll and PresentationCore.dll.

Official Patches

MicrosoftMSRC Security Advisory for CVE-2026-70007

Fix Analysis (2)

Technical Appendix

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

Affected Systems

Microsoft .NET 8.0Microsoft .NET 9.0Microsoft .NET 10.0Microsoft .NET 11.0Microsoft .NET Framework 3.5Microsoft .NET Framework 4.6.2 / 4.7 / 4.7.1 / 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 8.0
Microsoft
>= 8.0.0, < 8.0.328.0.32
.NET 9.0
Microsoft
>= 9.0.0, < 9.0.219.0.21
.NET 10.0
Microsoft
>= 10.0.0, < 10.0.1310.0.13
.NET 11.0
Microsoft
>= 11.0.0, < 11.0.0-rc.211.0.0-rc.2
.NET Framework 4.8.1
Microsoft
< 4.8.9363.04.8.9363.0
Visual Studio 2022
Microsoft
< 17.14.4217.14.42
AttributeDetail
CWE IDCWE-787 (Out-of-bounds Write)
Attack VectorNetwork (AV:N)
CVSS v3.1 Score8.8 (High)
EPSS ScorePending Baseline
ImpactRemote Code Execution (C:H/I:H/A:H)
Exploit StatusUnweaponized / No Public PoC
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1203Exploitation for Client Execution
Execution
T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-787
Out-of-bounds Write

The software writes data past the end, or before the beginning, of the intended buffer, leading to memory corruption or code execution.

Vulnerability Timeline

Servicing commits pushed to dotnet/wpf repository for Clipboard auto-conversion fix
2026-08-27
Automated servicing dependency updates ingested into internal .NET build pipelines
2026-09-01
Microsoft MSRC publishes official advisory and security updates for CVE-2026-70007
2026-10-13

References & Sources

  • [1]MSRC Vulnerability Advisory
  • [2]Official CVE Record
  • [3]MITRE ATT&CK Mapping Search
  • [4]GitHub Patch Commit - Clipboard API AutoConvert
  • [5]GitHub Patch Commit - TrueType Subsetting Safeguards

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

•23 minutes 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
2 views•5 min read
•about 2 hours 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
5 views•5 min read
•about 3 hours 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
9 views•6 min read
•about 4 hours ago•CVE-2026-70183
7.5

CVE-2026-70183: Elevation of Privilege in ASP.NET Core and Visual Studio via Concurrent Race Condition

An elevation of privilege vulnerability exists in ASP.NET Core and Microsoft Visual Studio due to improper synchronization during concurrent thread execution. Authenticated remote attackers with low privileges can exploit a timing window to manipulate shared resources and assume higher-level execution contexts.

Alon Barad
Alon Barad
7 views•5 min read
•3 days ago•CVE-2026-107844
5.3

CVE-2026-107844: Path Traversal Vulnerability in Contao ImagesController

A path traversal vulnerability (CWE-22) in Contao CMS allows unauthenticated remote attackers to bypass directory boundary restrictions in ImagesController and access files within the project directory.

Amit Schendel
Amit Schendel
15 views•5 min read
•3 days ago•CVE-2026-107848
3.5

CVE-2026-107848: Cross-Site Request Forgery (CSRF) in Contao Backend Actions via GET Requests

Contao Open Source CMS versions 4.0.0 through 5.3.49 and 5.4.0-RC1 through 5.7.11 contain a Cross-Site Request Forgery (CSRF) vulnerability in backend parameter handling. The `RequestTokenListener` component validates anti-CSRF tokens solely for HTTP POST requests, while GET-based declarative guards run only when an `act` parameter is present in the query string. Consequently, custom backend actions dispatched via alternative parameters such as `key=` can execute without CSRF token verification when triggered by an authenticated user.

Amit Schendel
Amit Schendel
10 views•5 min read