CVE-2026-57094 — Microsoft Windows Media Foundation Remote Code Execution Vulnerability
Executive Summary
Heap-based buffer overflow in Microsoft Windows Media Foundation allows an unauthorized attacker to execute code over a network.
Overview
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C
EPSS Score
Affected Products
| Product | KB Article | Severity | Impact | Restart Required |
|---|---|---|---|---|
| Windows 10 Version 1607 for 32-bit Systems | 5099535 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 1607 for x64-based Systems | 5099535 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 1809 for 32-bit Systems | 5099538 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 1809 for x64-based Systems | 5099538 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 21H2 for 32-bit Systems | 5099539 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 21H2 for ARM64-based Systems | 5099539 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 21H2 for x64-based Systems | 5099539 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 22H2 for 32-bit Systems | 5099539 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 22H2 for ARM64-based Systems | 5099539 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 22H2 for x64-based Systems | 5099539 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 24H2 for ARM64-based Systems | 5101650 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 24H2 for x64-based Systems | 5101650 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 25H2 for ARM64-based Systems | 5101650 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 25H2 for x64-based Systems | 5101650 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 26H1 for ARM64-based Systems | 5101649 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 version 26H1 for x64-based Systems | 5101649 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2016 | 5099535 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2016 (Server Core installation) | 5099535 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2019 | 5099538 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2019 (Server Core installation) | 5099538 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2022 | 5099540 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2025 | 5099536 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2025 (Server Core installation) | 5099536 (Security Update) |
Critical | Remote Code Execution | Yes |
Patches
| Article | Type | Restart |
|---|---|---|
5099535 |
Security Update | Yes |
5099538 |
Security Update | Yes |
5099539 |
Security Update | Yes |
5101650 |
Security Update | Yes |
5101649 |
Security Update | Yes |
5099540 |
Security Update | Yes |
5099536 |
Security Update | Yes |
Patch Diff
Heap-based buffer overflow (CWE-122, with CWE-125 out-of-bounds read) in Windows Media Foundation mfds.dll HEVC short-term reference-picture-set parser, remote code execution when a user opens a crafted media file (Critical, AV:N, UI:R, CVSS 8.8). CHEVCParser::parseShortTermRefPicSet fills a ReferencePictureSet structure (0x140 bytes; DeltaPOC array at +0x20, per-entry used flags at +0xA0, max 16 entries) via two branches: an explicit branch (bitstream) and an inter-RPS prediction branch (derived from a previously parsed set). PRE: the explicit branch enforced the 16-entry limit (if count > 0x10 return 0), but the inter-RPS prediction branch performed NO bound on its write index - it iterated the referenced set's entry count and wrote DeltaPOC[idx] (+0x20) and used[idx] (+0xA0) with an index never compared to 16, then stored the resulting count as the next set's bound. A crafted HEVC bitstream can drive the prediction branch to write past the 0x140-byte ReferencePictureSet - a heap overflow (plus OOB reads of the referenced set). Because a user need only open a crafted media file, this is an RCE primitive (Critical 8.8). Diff of mfds.dll 10.0.26100.8328 -> .8875 (Jul 14 2026, KB5101650, 24H2) confirms the fix: gated behind CFR flag Feature_1136894267 (the flag present in the analysed ghidriff; an alternate decompilation cites Feature_1405329723), a new bounded accessor ReferencePictureSet::setDeltaPOC writes only when idx < 0x10, the prediction branch routes all DeltaPOC/used writes through it, and the parser rejects an over-limit predicted count (count >= 0x10 return 0). Mechanism cross-checked against an independent decompilation writeup (functions/offsets match; only the feature-flag ID differs by tool).
| Function | Address | Change | Note |
|---|---|---|---|
ReferencePictureSet::setDeltaPOC (added) |
code change |
added (bounded accessor, CFR-gated) | New setter: if (!Feature_1136894267 || idx < 0x10) *(this + idx*4 + 0x20) = val; enforces the 16-entry bound on DeltaPOC writes that the inter-RPS prediction branch previously lacked. |
CHEVCParser::parseShortTermRefPicSet |
code change |
code (inter-RPS prediction branch now bounded, CFR-gated) | Pre: the prediction branch wrote DeltaPOC[idx] (+0x20) and used[idx] (+0xA0) with an index never compared to 16 (explicit branch checked > 0x10). Post (Feature_1136894267): routes writes through setDeltaPOC and rejects an over-limit predicted count (count >= 0x10 return 0). |
Feature_1136894267 |
gate |
added (CFR gate) | CFR flag gating the bounded RPS write path; original unbounded prediction branch ships when disabled. (An independent writeup cites Feature_1405329723 for the same fix; the analysed ghidriff shows Feature_1136894267.) |
Attack Path
A crafted HEVC inter-RPS prediction set writes past the 0x140-byte ReferencePictureSet, overflowing the heap
Derived from the patch delta: the checks added by the vendor identify which fields crossed a trust boundary unvalidated. Reachability and privilege are taken from the call chain in the RCA report.
Exploits & PoC
Detection Rules
Acknowledgments
yhw & txz