Important CVSS 7.8 EPSS 0.11977 ⚠️ Exploited in the wild 📢 Publicly disclosed 🔬 Patch diffed 2023-11 archive

Executive Summary

None

Overview

7.8
CVSS HIGH
Important
MS Severity
Exploited
MS Exploit Status
Exploitation Detected
MS Exploit Likelihood
Category Elevation of Privilege
Released Nov 14 2023
Last Updated Nov 14 2023
Publicly Disclosed Yes
CISA KEV Not Listed
Known Exploits None Known
EPSS Score 0.11977 — 0.95751 percentile
NVD CVSS 7.8 HIGH — matches MSRC

CVSS Vector

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H/E:P/RL:O/RC:C
ATTACK VECTOR
Local
ATTACK COMPLEXITY
Low
PRIVILEGES REQUIRED
Low
USER INTERACTION
None
SCOPE
Unchanged
CONFIDENTIALITY
High
INTEGRITY
High
AVAILABILITY
High
EXPLOIT CODE MATURITY
Proof-of-Concept
REMEDIATION LEVEL
Official Fix
REPORT CONFIDENCE
Confirmed
Temporal Score: 7.0

EPSS Score

0.11977
probability of exploitation in the next 30 days
0.95751 percentile - updated 2026-08-14
View on FIRST.org

Affected Products

18 affected products
Product KB Article Severity Impact Restart Required
Windows 10 Version 1809 for 32-bit Systems 5032196 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 1809 for ARM64-based Systems 5032196 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 1809 for x64-based Systems 5032196 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 21H2 for 32-bit Systems 5032189 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 21H2 for ARM64-based Systems 5032189 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 21H2 for x64-based Systems 5032189 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 22H2 for 32-bit Systems 5032189 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 22H2 for ARM64-based Systems 5032189 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 22H2 for x64-based Systems 5032189 (Security Update) Important Elevation of Privilege Yes
Windows 11 version 21H2 for ARM64-based Systems 5032192 (Security Update) Important Elevation of Privilege Yes
Windows 11 version 21H2 for x64-based Systems 5032192 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 22H2 for ARM64-based Systems 5032190 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 22H2 for x64-based Systems 5032190 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 23H2 for ARM64-based Systems 5032190 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 23H2 for x64-based Systems 5032190 (Security Update) Important Elevation of Privilege Yes
Windows Server 2019 5032196 (Security Update) Important Elevation of Privilege Yes
Windows Server 2019 (Server Core installation) 5032196 (Security Update) Important Elevation of Privilege Yes
Windows Server 2022 5032198 (Security Update) 5032304 (SecurityHotpatchUpdate) Important Elevation of Privilege 5031364 Base: 7.8 Temporal: 7.0 Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H/E:P/RL:O/RC:C 10.0.20348.2113 10.0.20348.2091 Yes No None Windows Server 2022 (Server Core installation) 5032198 (Security Update) 5032304 (SecurityHotpatchUpdate) Important Elevation of Privilege 5031364 Base: 7.8 Temporal: 7.0 Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H/E:P/RL:O/RC:C 10.0.20348.2113 10.0.20348.2091 Yes No None Windows Server 2022, 23H2 Edition (Server Core installation) 5032202 (Security Update) Important Elevation of Privilege Yes

Patches

5 patches
Article Type Restart
5032196 Security Update Yes
5032189 Security Update Yes
5032192 Security Update Yes
5032190 Security Update Yes
5032202 Security Update Yes

Patch Diff

ghidriff · dwmcore.dll (KB5032190)

User-controlled CPathData pointer in shared section used by GetSampledStartingValue for PATH (0xb) animations. DWM reads pointer from attacker-writable shared memory and passes to ComPtr::operator= (AddRef/Release), giving controlled virtual call. Fix adds private wil::com_ptr_t<CPathData> member at this+0x1c8; object grows 8 bytes. Exploited in the wild.

Pre-patch version 10.0.22621.2506 Download
Post-patch version 10.0.22621.2715 Download
Function Address Change Note
CKeyframeAnimation::GetSampledStartingValue code, length CPathData pointer source changed from shared section (piVar2+2) to private member field (this+0x1c8)
CKeyframeAnimation::CKeyframeAnimation code, length, address Constructor initializes new wil::com_ptr_t<CPathData> at this+0x1c8; object grows 8 bytes
CKeyframeAnimation::~CKeyframeAnimation code, refcount, length, called Destructor calls ~com_ptr_t() on this+0x1c8 to release private CPathData; all offsets shifted +8
GetCacheSizeForType code, length, address PATH (0xb) shared section cache size reduced 0x10→0x8; pointer no longer cached in shared section
CKeyframeAnimation::CalculateValueWorker code, length, address, called Mechanical +8 offset shifts from object growth; no logic changes
Microsoft::WRL::ComPtr<CPathData>::operator= code, fullname, refcount, length, sig, address, calling, called Renamed to wil::com_ptr_t<CPathData>::operator=; uses XFG CFG dispatch; SampleStartingValue removed from callers
View full diff report View RCA report Download PoC

Attack Path

Local EoP to SYSTEM via a controlled virtual call in the DWM composition engine - exploited in the wild

Attack path for CVE-2023-36033 Local EoP to SYSTEM via a controlled virtual call in the DWM composition engine - exploited in the wild 01 — ENTRY Attacker creates a DirectComposition device and animation as a standard user DCompositionCreateDevice() then IDCompositionDevice::CreateAnimation(). DWM runs as SYSTEM and is always present on desktop Windows. No admin rights, no user interaction. 02 — CONTROLLED INPUT Sets the animation type to PATH and overwrites the cached CPathData pointer Animation type 0xb populates a 0x10-byte entry in a section shared with the DWM process. The creating process can write directly to it - no cross-process access needed. Attacker plants a fake object pointer at cache+0x08. 03 — PATH The next composition frame tick evaluates the expression inside DWM CBaseExpression::Calculate -> CKeyframeAnimation::GetSampledStartingValue, which reads the CPathData* straight back out of the shared cache (piVar2 + 2). 04 — MISSING CHECK GetSampledStartingValue trusts a pointer that lives in attacker-writable shared memory The cached pointer is assigned through Microsoft::WRL::ComPtr<CPathData>::operator= with no validation that it still refers to a real CPathData. The patch revalidates the cached object before use. 05 — PRIMITIVE AddRef/Release fire on the fake object - controlled virtual call in a SYSTEM process pCVar3->AddRef() dispatches through an attacker-supplied vtable. Target must be CFG-valid and the shared section base must be known or leaked. Yields code execution as SYSTEM.

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