Executive Summary

None

Overview

7.8
CVSS HIGH
Critical
MS Severity
Not Exploited
MS Exploit Status
Less Likely
MS Exploit Likelihood
Category Remote Code Execution
Released Jul 13 2021
Last Updated Jul 13 2021
Publicly Disclosed No
CISA KEV Not Listed
Known Exploits None Known
NVD CVSS 7.8 HIGH — matches MSRC

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
ATTACK VECTOR
Local
ATTACK COMPLEXITY
Low
PRIVILEGES REQUIRED
None
USER INTERACTION
Required
SCOPE
Unchanged
CONFIDENTIALITY
High
INTEGRITY
High
AVAILABILITY
High
EXPLOIT CODE MATURITY
Unproven
REMEDIATION LEVEL
Official Fix
REPORT CONFIDENCE
Confirmed
Temporal Score: 6.8

EPSS Score

No EPSS score available for this CVE.

View on FIRST.org

Affected Products

8 affected 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

2 patches
Article Type Restart
5004244 Security Update Yes
5004245 Security Update Yes

Patch Diff

ghidriff · mfmp4srcsnk.dll ()

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.

Pre-patch version 10.0.19041.906
Post-patch version 10.0.19041.1110
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.
View RCA report Download PoC

Attack Path

Type confusion in QuickTime sample-description parsing reached by simply viewing a folder

Attack path for CVE-2021-34503 Type confusion in QuickTime sample-description parsing reached by simply viewing a folder 01 — ENTRY Victim browses a folder containing a malicious .mov file File Explorer calls SHGetPropertyStoreFromParsingName on enumeration. No user interaction beyond viewing the directory, and no privileges required. 02 — CONTROLLED INPUT The Protected Sample Entry Box header is mutated to change the concrete type The four-char code 'encv' is changed to 'ench', so the atom parser instantiates a CQTVideoSampleDescription (0x100 bytes) where the caller expects a CAVCVideoSampleDescription. 03 — PATH The shell property handler parses the movie atoms CShellItem::GetPropertyStore -> CFSPropertyStoreFactory::_GetFileStore -> InitializeFileHandlerWithStream -> CMFMP4PropertyHandler::LoadMetadataProvider -> MFCreateQTMovie -> CQTMovie::CreateMovieFromBuffer -> FinalParseAtom -> CQTSampleDescriptionAtom::FinalParseAtom. 04 — MISSING CHECK The iteration calls IsBetterForMediaType without checking that all entries share one concrete type The virtual call at vftable+0xB8 is dispatched across a heterogeneous list. The patch validates the concrete type before the call. 05 — PRIMITIVE Out-of-bounds heap read at offset 0x104 of a 0x100-byte object Fields are accessed four bytes past the end of the smaller allocation. Read-only OOB - crash, with information-disclosure potential depending on heap layout.

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)