Critical CVSS 8.1 EPSS 0.79827 🔬 Patch diffed 2022-05 archive

Executive Summary

None

Overview

8.1
CVSS HIGH
Critical
MS Severity
Not Exploited
MS Exploit Status
Less Likely
MS Exploit Likelihood
Category Remote Code Execution
Released May 10 2022
Last Updated May 10 2022
Publicly Disclosed No
CISA KEV Not Listed
Known Exploits None Known
EPSS Score 0.79827 — 0.99575 percentile
NVD CVSS 8.1 HIGH — matches MSRC

CVSS Vector

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C
ATTACK VECTOR
Network
ATTACK COMPLEXITY
High
PRIVILEGES REQUIRED
None
USER INTERACTION
None
SCOPE
Unchanged
CONFIDENTIALITY
High
INTEGRITY
High
AVAILABILITY
High
EXPLOIT CODE MATURITY
Unproven
REMEDIATION LEVEL
Official Fix
REPORT CONFIDENCE
Confirmed
Temporal Score: 7.1

EPSS Score

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

Affected Products

28 affected products
Product KB Article Severity Impact Restart Required
Windows 10 for 32-bit Systems 5013963 (Security Update) Critical Remote Code Execution Yes
Windows 10 for x64-based Systems 5013963 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 1607 for 32-bit Systems 5013952 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 1607 for x64-based Systems 5013952 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 1809 for 32-bit Systems 5013941 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 1809 for ARM64-based Systems 5013941 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 1809 for x64-based Systems 5013941 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 1909 for 32-bit Systems 5013945 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 1909 for ARM64-based Systems 5013945 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 1909 for x64-based Systems 5013945 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 20H2 for 32-bit Systems 5013942 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 20H2 for ARM64-based Systems 5013942 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 21H1 for 32-bit Systems 5013942 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 21H1 for ARM64-based Systems 5013942 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 21H1 for x64-based Systems 5013942 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 21H2 for 32-bit Systems 5013942 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 21H2 for ARM64-based Systems 5013942 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 21H2 for x64-based Systems 5013942 (Security Update) Critical Remote Code Execution Yes
Windows 11 version 21H2 for ARM64-based Systems 5013943 (Security Update) Critical Remote Code Execution Yes
Windows 11 version 21H2 for x64-based Systems 5013943 (Security Update) Critical Remote Code Execution Yes
Windows 7 for 32-bit Systems Service Pack 1 5014012 (Monthly Rollup) 5013999 (Security Only) Critical Remote Code Execution 5012626 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.1.7601.25954 Yes 5014012 5013999 Windows 7 for x64-based Systems Service Pack 1 5014012 (Monthly Rollup) 5013999 (Security Only) Critical Remote Code Execution 5012626 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.1.7601.25954 Yes 5014012 5013999 Windows 8.1 for 32-bit systems 5014011 (Monthly Rollup) 5014001 (Security Only) Critical Remote Code Execution 5012670 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.3.9600.20371 6.3.9600.20365 Yes 5014011 5014001 Windows 8.1 for x64-based systems 5014011 (Monthly Rollup) 5014001 (Security Only) Critical Remote Code Execution 5012670 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.3.9600.20371 6.3.9600.20365 Yes 5014011 5014001 Windows RT 8.1 5014025 (ServicingStackUpdate) Critical Remote Code Execution Yes
Windows Server 2008 for 32-bit Systems Service Pack 2 5014010 (Monthly Rollup) 5014006 (Security Only) Critical Remote Code Execution 5012658 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.0.6003.21481 Yes 5014010 5014006 Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation) 5014010 (Monthly Rollup) 5014006 (Security Only) Critical Remote Code Execution 5012658 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.0.6003.21481 Yes 5014010 5014006 Windows Server 2008 for x64-based Systems Service Pack 2 5014010 (Monthly Rollup) 5014006 (Security Only) Critical Remote Code Execution 5012658 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.0.6003.21481 Yes 5014010 5014006 Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation) 5014010 (Monthly Rollup) 5014006 (Security Only) Critical Remote Code Execution 5012658 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.0.6003.21481 Yes 5014010 5014006 Windows Server 2008 R2 for x64-based Systems Service Pack 1 5014012 (Monthly Rollup) 5013999 (Security Only) Critical Remote Code Execution 5012626 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.1.7601.25954 Yes 5014012 5013999 Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation) 5014012 (Monthly Rollup) 5013999 (Security Only) Critical Remote Code Execution 5012626 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.1.7601.25954 Yes 5014012 5013999 Windows Server 2012 5014017 (Monthly Rollup) 5014018 (Security Only) Critical Remote Code Execution 5012650 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.2.9200.23714 Yes 5014017 5014018 Windows Server 2012 (Server Core installation) 5014017 (Monthly Rollup) 5014018 (Security Only) Critical Remote Code Execution 5012650 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.2.9200.23714 Yes 5014017 5014018 Windows Server 2012 R2 5014011 (Monthly Rollup) 5014001 (Security Only) Critical Remote Code Execution 5012670 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.3.9600.20371 6.3.9600.20365 Yes 5014011 5014001 Windows Server 2012 R2 (Server Core installation) 5014011 (Monthly Rollup) 5014001 (Security Only) Critical Remote Code Execution 5012670 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 6.3.9600.20371 6.3.9600.20365 Yes 5014011 5014001 Windows Server 2016 5013952 (Security Update) Critical Remote Code Execution Yes
Windows Server 2016 (Server Core installation) 5013952 (Security Update) Critical Remote Code Execution Yes
Windows Server 2019 5013941 (Security Update) Critical Remote Code Execution Yes
Windows Server 2019 (Server Core installation) 5013941 (Security Update) Critical Remote Code Execution Yes
Windows Server 2022 5013944 (Security Update) Critical Remote Code Execution Yes
Windows Server 2022 (Server Core installation) 5013944 (Security Update) Critical Remote Code Execution Yes
Windows Server, version 20H2 (Server Core Installation) 5013942 (Security Update) Critical Remote Code Execution Yes

Patches

8 patches
Article Type Restart
5013963 Security Update Yes
5013952 Security Update Yes
5013941 Security Update Yes
5013945 Security Update Yes
5013942 Security Update Yes
5013943 Security Update Yes
5014025 ServicingStackUpdate Yes
5013944 Security Update Yes

Patch Diff

ghidriff · raspptp.sys (KB5013941)

Remote pre-auth kernel use-after-free (CWE-416, race CWE-362) in the Windows PPTP VPN driver raspptp.sys, on the TCP 1723 control connection (RRAS). WskAcceptCompletion -> CtlConnectQueryCallback -> CtlAlloc allocates the PPTP control-connection context PptpCtlCtx (0x290 bytes, pool tag 'TPTP'). The context is used concurrently by the control state machine (CtlpEngine), the receive callback (CtlReceiveCallback), and the death/wait timers (CtlpDeathTimeout/CtlpWaitTimeout), while its teardown (CtlpCleanup) can run in parallel - and its lifetime was not safely reference-counted, so one path frees PptpCtlCtx while another still dereferences it (UAF), reliably triggerable by crafted control traffic. IN-HOUSE ghidriff of raspptp.sys 10.0.19041.1586 -> .1706 (May 10 2022) confirms the fix: the May build overhauls PPTP object lifetime, adding rundown protection (ExInitialize/Acquire/Release/WaitForRundownProtectionRelease/ExRundownCompleted) and new ReferenceRefCount/DereferenceRefCount helpers across CtlAlloc/CtlpCleanup/CtlpEngine/CtlReceiveCallback/CtlpDeathTimeout so a free waits for in-flight users. Not feature-gated (2022). The same overhaul fixes the sibling CVE-2022-23270. Credit: Alex Nichols (@i4mchr00t), Yuki Chen (@guhe120).

Pre-patch version 10.0.19041.1586 Download
Post-patch version 10.0.19041.1706 Download
Function Address Change Note
CtlpCleanup / CtlpEngine / CtlReceiveCallback / CtlpDeathTimeout code change code (object-lifetime rework: rundown protection + refcount) Control-context (PptpCtlCtx) use/free paths reworked to acquire rundown protection / a reference while using the context and to free only after ExWaitForRundownProtectionRelease / DereferenceRefCount reports no user remains.
ReferenceRefCount / DereferenceRefCount new/added added (explicit reference counting) New helpers introduced by the May 2022 build to reference-count PPTP control/call objects, closing the free-while-in-use window.
Ex*RundownProtection* newly imported/called added (rundown barriers) ExInitializeRundownProtection/ExAcquireRundownProtection/ExReleaseRundownProtection/ExWaitForRundownProtectionRelease/ExRundownCompleted added so a free waits for all in-flight users before releasing the object.
View full diff report View RCA report

Attack Path

The PPTP control-connection context is freed while a concurrent control-packet path still uses it

Attack path for CVE-2022-21972 The PPTP control-connection context is freed while a concurrent control-packet path still uses it 01 — ENTRY Remote unauthenticated attacker opens a PPTP control connection to TCP 1723 raspptp.sys (RRAS PPTP VPN) accepts control connections pre-auth. WskAcceptCompletion -> CtlConnectQueryCallback completes setup and CtlAlloc allocates the PptpCtlCtx control context (0x290 bytes, tag 'TPTP'). 02 — CONTROLLED INPUT Drives control traffic plus a teardown to race the context lifecycle The attacker sends crafted control messages while triggering the control-connection teardown / death timeout so both run concurrently on the same PptpCtlCtx. 03 — PATH PptpCtlCtx is used across the state machine, receive callback, and timers CtlpEngine, CtlReceiveCallback, and CtlpDeathTimeout/CtlpWaitTimeout all operate on the control context while CtlpCleanup can free it in another thread. 04 — MISSING CHECK The context lifetime is not safely reference-counted Nothing forces the free to wait for in-flight users, so CtlpCleanup releases PptpCtlCtx while a concurrent receive/state-machine path still dereferences it - a use-after-free (CWE-416 via CWE-362). 05 — PRIMITIVE Kernel UAF on the control context -> remote kernel RCE The freed 'TPTP' allocation is reused; the dangling reference yields controlled kernel corruption (DoS at minimum, RCE with grooming). The May 2022 fix adds rundown protection + ReferenceRefCount/DereferenceRefCount so the object is freed only when no user remains.

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