CVE-2021-34503 — Microsoft Windows Media Foundation Remote Code Execution Vulnerability
Executive Summary
None
Overview
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C
EPSS Score
No EPSS score available for this CVE.
View on FIRST.orgAffected Products
| Product | KB Article | Severity | Impact | Restart Required |
|---|---|---|---|---|
| Windows 10 Version 1809 for 32-bit Systems | 5004244 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 1809 for x64-based Systems | 5004244 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 1809 for ARM64-based Systems | 5004244 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2019 | 5004244 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2019 (Server Core installation) | 5004244 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 1909 for 32-bit Systems | 5004245 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 1909 for x64-based Systems | 5004245 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 1909 for ARM64-based Systems | 5004245 (Security Update) |
Critical | Remote Code Execution | Yes |
Patches
| Article | Type | Restart |
|---|---|---|
5004244 |
Security Update | Yes |
5004245 |
Security Update | Yes |
Patch Diff
Type confusion in mfmp4srcsnk.dll when parsing QuickTime metadata. CQTSampleDescriptionAtom::FinalParseAtom iterates sample description objects calling IsBetterForMediaType (vftable+0xB8) without verifying all objects share the same concrete type. Malformed Protected Sample Entry Box header (encv mutated to ench) causes CQTVideoSampleDescription (0x100 bytes) to be accessed as CAVCVideoSampleDescription at offset 0x104 — OOB heap read. Trigger: navigate to folder containing malicious .mov file. No privilege required.
| Function | Address | Change | Note |
|---|---|---|---|
CAVCVideoSampleDescription::IsBetterForMediaType |
|
code (type validation added) | Type confusion: CQTVideoSampleDescription (0x100 bytes) treated as CAVCVideoSampleDescription which accesses offset 0x104. FinalParseAtom iterates sample description array calling vftable+0xB8 without proper type consistency check. |
CQTSampleDescriptionAtom::CheckIfMultipleSampleEntriesAreAllowed |
|
code (stricter type check) | Pre-patch: insufficient validation allows different concrete types in the sample description array. Mutated Protected Sample Entry Box (encv -> ench) bypasses the check. |
Attack Path
Type confusion in QuickTime sample-description parsing reached by simply viewing a folder
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.
Known Exploits
Acknowledgments
Phan Thanh Duy (PTDuy) of STAR Labs & Phạm Hồng Phi (4nhdaden)