Important CVSS 7 EPSS 0.00199 🔬 Patch diffed 2026-07 archive

Executive Summary

Concurrent execution using shared resource with improper synchronization ('race condition') in Windows Key Guard allows an authorized attacker to elevate privileges locally.

Overview

7
CVSS HIGH
Important
MS Severity
Not Exploited
MS Exploit Status
Less Likely
MS Exploit Likelihood
Category Elevation of Privilege
Released Jul 14 2026
Last Updated Jul 14 2026
Publicly Disclosed No
CISA KEV Not Listed
Known Exploits None Known
EPSS Score 0.00199 — 0.09994 percentile
NVD CVSS 7 HIGH — differs from MSRC

CVSS Vector

CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C
ATTACK VECTOR
Local
ATTACK COMPLEXITY
High
PRIVILEGES REQUIRED
Low
USER INTERACTION
None
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

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

Affected Products

19 affected products
Product KB Article Severity Impact Restart Required
Windows 10 Version 1809 for 32-bit Systems 5099538 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 1809 for x64-based Systems 5099538 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 21H2 for 32-bit Systems 5099539 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 21H2 for ARM64-based Systems 5099539 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 21H2 for x64-based Systems 5099539 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 22H2 for 32-bit Systems 5099539 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 22H2 for ARM64-based Systems 5099539 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 22H2 for x64-based Systems 5099539 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 24H2 for ARM64-based Systems 5101650 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 24H2 for x64-based Systems 5101650 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 25H2 for ARM64-based Systems 5101650 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 25H2 for x64-based Systems 5101650 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 26H1 for ARM64-based Systems 5101649 (Security Update) Important Elevation of Privilege Yes
Windows 11 version 26H1 for x64-based Systems 5095051 (Security Update) Important Elevation of Privilege Yes
Windows Server 2019 5099538 (Security Update) Important Elevation of Privilege Yes
Windows Server 2019 (Server Core installation) 5099538 (Security Update) Important Elevation of Privilege Yes
Windows Server 2022 5099540 (Security Update) Important Elevation of Privilege Yes
Windows Server 2025 5099536 (Security Update) Important Elevation of Privilege Yes
Windows Server 2025 (Server Core installation) 5099536 (Security Update) Important Elevation of Privilege Yes

Patches

7 patches
Article Type Restart
5099538 Security Update Yes
5099539 Security Update Yes
5101650 Security Update Yes
5101649 Security Update Yes
5095051 Security Update Yes
5099540 Security Update Yes
5099536 Security Update Yes

Patch Diff

ghidriff · lsaiso.exe (KB5101650)

Race condition (CWE-362) in the Windows Key Guard isolated trustlet lsaiso.exe BCryptIum crypto-RPC objects, local EoP to SYSTEM. lsaiso.exe is the Isolated LSA / Key Guard trustlet (runs in VBS/IUM VTL1) and exposes a BCryptIum* RPC interface for isolated crypto operations; each key/context is a _BCRYPT_ISO_OBJECT tracked by the trustlet. PRE: access to a shared _BCRYPT_ISO_OBJECT across the BCryptIum operations was not synchronized, so concurrent RPC calls operating on the same object could race (use/modify it while another call used/freed it) - a race condition on the shared trustlet crypto object exploitable for local EoP to SYSTEM. Diff of lsaiso.exe 10.0.26100.8737 -> .8875 (Jul 14 2026, KB5101650) confirms the fix: the _BCRYPT_ISO_OBJECT gains a per-object SRW lock (a lock field at object+0x28); AllocateBCryptIsoObject initializes it and the BCryptIum operations (Encrypt/Decrypt/DeriveKey/CreateClaim/DuplicateKey/DestroyKey/... via LookupBCryptIsoObject) now AcquireSRWLockExclusive/ReleaseSRWLockExclusive around access to the shared object, serializing concurrent operations and closing the race. Note: this July update reworks the whole BCryptIum trustlet interface; the CWE-362 race fix is the per-object SRW-lock serialization isolated here. The paired Key Guard CVE-2026-50303 (CWE-1240, risky crypto primitive) is in the same binary but its distinct crypto change was not cleanly isolable in this diff and is not claimed here.

Pre-patch version 10.0.26100.8737 Download
Post-patch version 10.0.26100.8875 Download
Function Address Change Note
AllocateBCryptIsoObject code change code (per-object SRW lock added) The allocated _BCRYPT_ISO_OBJECT now carries an SRW lock (field at +0x28) initialized here; AcquireSRWLockExclusive/ReleaseSRWLockExclusive imported and used.
BCryptIum* operations (Encrypt/Decrypt/DeriveKey/SecretAgreement/CreateClaim/DuplicateKey/DestroyKey/ImportKey/ExportKey/...) code change code (serialized access to the shared ISO object) These RPC handlers now look up the _BCRYPT_ISO_OBJECT and take the per-object SRW lock around access, serializing concurrent operations on the same trustlet crypto object.
race-fix n/a note Direct fix (not CFR-gated). ~36 BCryptIum functions changed as part of the interface rework; the CWE-362 fix is the added per-object SRW-lock serialization.
View full diff report View RCA report

Attack Path

Concurrent BCryptIum RPC calls race on a shared Key Guard trustlet crypto object with no lock

Attack path for CVE-2026-50378 Concurrent BCryptIum RPC calls race on a shared Key Guard trustlet crypto object with no lock 01 — ENTRY Local user issues BCryptIum crypto RPC calls to the Key Guard trustlet lsaiso.exe (VBS/IUM trustlet) exposes BCryptIum* operations over shared _BCRYPT_ISO_OBJECT key/context objects. AV:L/PR:L/AC:L. 02 — CONTROLLED INPUT Drives concurrent operations on the same crypto object Two RPC calls reference the same _BCRYPT_ISO_OBJECT simultaneously. 03 — MISSING CHECK Access to the shared object is unsynchronized (CWE-362) One call uses/modifies/frees the object while another uses it - a race on the trustlet crypto object. 04 — PATH Racing operations corrupt the shared object state The unsynchronized access yields memory/state corruption inside the isolated trustlet. 05 — PRIMITIVE Race on the Key Guard trustlet crypto object -> EoP to SYSTEM The Jul 2026 fix adds a per-object SRW lock (+0x28) serializing BCryptIum access.

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

Leshi Yang