A locked filing cabinet in an office where the attacker already has a desk
CVE-2026-50343 is an improper privilege management flaw (CWE-269) in the Microsoft Install Service — the SYSTEM-context worker that brokers MSI transactions on Windows. A locally authenticated user (any standard Users group member) can abuse the way the service handles installation state or file operations to execute code as NT AUTHORITY\SYSTEM. It affects the shipping Install Service across Windows 10 (1607, 1809, 21H2, 22H2), Windows 11 (24H2, 25H2, 26H1), and Windows Server 2012 through 2025 — essentially the entire supported Windows fleet. Microsoft published the fix in the July 14, 2026 cumulative rollups.
Microsoft's 7.8 HIGH rating is technically defensible under CVSS 3.1 — AV:L/AC:L/PR:L/UI:N with full C/I/A impact does math out that way — but it overstates the *operational* risk for a fleet manager. Every Windows LPE in the Installer / MSI family gets a 7.8 by construction; that number does not distinguish a boring same-day-patched local bug from an actively weaponized SYSTEM primitive. EPSS is 0.02545 (bottom quartile), it is not on CISA KEV, and no public PoC surfaced in the 48 hours after disclosure. Treat it as a MEDIUM in the queue — real, worth fixing on the standard Windows monthly train, but not a fire drill.
4 steps from start to impact.
Attacker obtains an interactive foothold as a standard user
AV:L/PR:L — the attacker must already be executing code on the target host as an authenticated principal. That means a phishing landing, a stolen VDI session, an RDP bastion pivot, a Citrix escape, or an insider. There is no network-reachable trigger.- Code execution as any authenticated Windows user
- Ability to invoke MSI / Install Service APIs
- Requires prior initial access — this is stage-2, not stage-0
- EDR typically flags the delivery vector (loader, LOLBin, phishing payload) before this step is reached
Trigger the Install Service privilege management flaw
msiexec.exe, MSI COM interfaces, or a crafted installer package — in a way that causes the SYSTEM-context worker to mishandle a security check on a file, registry, or handle operation. Historically this class exploits RestartManager, rollback scripts, SetSecurityInfo races, or symbolic-link redirection under %WINDIR%\Installer / %TEMP%. No public PoC exists yet; expect one within 2–4 weeks based on the historical cadence for MSI CWE-269 bugs.- Ability to write to a user-writable staging path
- Install Service reachable (default on all Windows SKUs)
- Requires reliable primitive — many MSI LPEs are race-window dependent and unreliable on fast SSDs / slow VMs
- AppLocker or WDAC in
Enforcemode with MSI enforcement blocks arbitrary package execution
msiexec.exe spawning children as SYSTEM; Defender ASR rule *Block abuse of exploited vulnerable signed drivers* does NOT cover this — needs custom rule.Escalate to NT AUTHORITY\SYSTEM
- Install Service running (default)
- No PPL protection blocking secondary payload
- LSASS PPL / Credential Guard blunt the classic follow-on credential theft on modern builds
- EDR tamper protection survives most SYSTEM-level attacks against the agent itself
Lateral movement (if host is a stepping stone)
PsExec / WMI / WinRM lateral movement. Impact here is host-scoped unless the compromised host is a jump box, admin workstation, or shared terminal server.- Domain-joined host
- Active privileged sessions or cached tickets present
- Tier-0 admin isolation (PAW model) prevents DA credentials from ever touching a general-user machine
- LAPS randomizes local admin so lateral-by-local-hash fails
The supporting signals.
| In-the-wild exploitation | None observed as of 2026-07-16. Not in CISA KEV. No vendor telemetry of active abuse in Microsoft's July advisory. |
|---|---|
| Public PoC | No public PoC at time of assessment. Historical class (MSI CWE-269) typically sees a PoC from researchers such as *Abdelhamid Naceri* or *SandboxEscaper*-lineage accounts within 2–4 weeks. |
| EPSS | 0.02545 (~2.5%) — bottom quartile. Reflects the low base rate of local-only Windows LPEs being weaponized broadly. |
| KEV status | Not listed. CISA has not added CVE-2026-50343 to the Known Exploited Vulnerabilities catalog. |
| CVSS vector | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H → 7.8 HIGH. AV:L is the decisive limiter — no network-reachable primitive. |
| CWE | CWE-269 Improper Privilege Management — same family as CVE-2023-21800, CVE-2022-24499, and the long tail of Naceri MSI LPEs. |
| Affected versions | Windows 10 (1607/1809/21H2/22H2), Windows 11 (24H2/25H2/26H1), Windows Server 2012–2025. Effectively the entire supported Windows fleet. |
| Fixed versions | Install the July 14, 2026 cumulative rollup (KB numbers vary by SKU — see MSRC advisory). No standalone Install Service package; ships in the monthly LCU. |
| Exposure data | Not internet-facing; Shodan/Censys/GreyNoise not applicable. Population = every Windows host in the estate. |
| Disclosure & credit | Disclosed 2026-07-14 as part of Microsoft's July Patch Tuesday. Researcher credit per MSRC advisory. |
noisgate verdict.
Downgraded from vendor HIGH (7.8) to MEDIUM because the single most decisive factor is that exploitation requires prior authenticated local code execution — this is a stage-2 privilege escalation, not an initial-access vector, with no PoC, no KEV listing, and EPSS in the bottom quartile. The Install Service ships on every Windows host, but the affected component is not a canonically high-value role (it is not an IdP, hypervisor, CA, or backup admin) so the role-multiplier floor does not force HIGH.
Why this verdict
- Friction — requires prior foothold:
AV:L/PR:Lmeans the attacker is already executing code as a standard user. Every friction point in your stack that stops initial access (email gateway, EDR on the endpoint, browser isolation, MFA) also stops this chain from ever starting. - Friction — no wild exploitation, low EPSS: Not on KEV, EPSS
0.02545, no PoC on GitHub or Twitter/X 48h post-disclosure. There is no urgency multiplier from a live campaign. - Role multiplier — general Windows fleet: The Install Service is present on all Windows SKUs; on a standard workstation or member server the chain succeeds and yields SYSTEM on that host — blast radius is *host-scoped*. On a shared jump box, Citrix / RDS multi-user host, or software-packaging build server the same SYSTEM outcome exposes every concurrent user session — blast radius is *tenant-scoped* on that host but does not pivot to domain-scale without a separate primitive. On a domain controller the Install Service is present but MSI packages are almost never executed there under a standard user context, so the realistic exposure is negligible. No high-value role's chain ends in fleet compromise from this bug alone — the floor stays MEDIUM.
- Baseline honesty: Microsoft assigns 7.8 to every SYSTEM LPE by CVSS mechanics; this rating does not differentiate a boring quarterly LPE from an actively weaponized one. Reassessment corrects that.
Why not higher?
HIGH would require either KEV listing, an in-the-wild campaign, a working public PoC, or the bug residing in a canonical high-value-role component (IdP, hypervisor, PAM, backup admin, network edge, kernel-mode agent). None of those apply. The Install Service is fleet-wide but role-neutral.
Why not lower?
LOW / IGNORE would ignore that this is a real SYSTEM primitive on every supported Windows host, that the MSI CWE-269 class has a history of reliable weaponization within weeks, and that any second-stage attacker will look for exactly this. It belongs in the normal patch train, not the backlog.
What to do — in priority order.
- Ship the July 14, 2026 cumulative update on the monthly Windows ring — This is a standard LCU-delivered fix — no out-of-band. Under the noisgate remediation SLA for MEDIUM, you have up to 365 days, but there is no reason to push this outside your normal 30-day workstation / 45-day server ring.
- Enforce AppLocker or WDAC in
Enforcemode with MSI script enforcement enabled — Blocks arbitrary MSI package execution by non-admins, which removes the most common trigger surface for MSI CWE-269 bugs. Deploy per your existing application-control program timeline — this is defense-in-depth that also mitigates the next MSI LPE, not just this one. - Tighten
AlwaysInstallElevatedpolicy check — Verify bothHKLMandHKCUAlwaysInstallElevatedare set to0. If set to1anywhere in the estate, standard users can already install MSIs as SYSTEM — this bug becomes moot because you have a bigger problem. Audit via GPO reporting within the noisgate MEDIUM window. - Add Sysmon EID 1 rule for
msiexec.exeparent with SYSTEM child spawn — Cheap detection. Anymsiexec.exelaunched by a non-admin user that produces a SYSTEM-context child process is worth reviewing. Deploy to your SIEM this week.
- Perimeter firewalls / IPS — the vulnerability is
AV:L; nothing crosses the network to inspect. - MFA on domain login — attacker is already authenticated; MFA gates login, not local exploitation.
- Removing the Install Service — the Install Service is a required Windows component; disabling it breaks Windows Update, MSI installs, and Store apps.
- LSASS PPL / Credential Guard — mitigate the *follow-on* credential theft but do not stop the initial LPE itself.
- LAPS — protects lateral movement via local admin hash reuse but does not prevent local SYSTEM escalation.
Crowdsourced verification payload.
Run on any Windows target as standard user or higher (elevation not required for the version check). Invoke on a single host: .\Check-CVE-2026-50343.ps1. For fleet-wide use, wrap in Invoke-Command -ComputerName (Get-Content hosts.txt). The script checks the msiexec.exe file version against the July 14, 2026 patched build and emits VULNERABLE, PATCHED, or UNKNOWN.
#Requires -Version 5.1
# Check-CVE-2026-50343.ps1
# Verifies patch status for CVE-2026-50343 (Windows Install Service EoP)
# Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN
$ErrorActionPreference = 'Stop'
# Minimum patched msiexec.exe file versions per Windows release train.
# Values below reflect the July 14, 2026 cumulative rollups. Adjust per MSRC advisory
# if your image build train diverges (LTSC, Server Core, etc.).
$MinVersions = @{
'10.0.26100' = [Version]'10.0.26100.4900' # Win11 24H2 / Server 2025
'10.0.22631' = [Version]'10.0.22631.5900' # Win11 23H2
'10.0.22621' = [Version]'10.0.22621.5900' # Win11 22H2
'10.0.19045' = [Version]'10.0.19045.6500' # Win10 22H2
'10.0.20348' = [Version]'10.0.20348.3900' # Server 2022
'10.0.17763' = [Version]'10.0.17763.7500' # Server 2019 / Win10 1809
'10.0.14393' = [Version]'10.0.14393.8100' # Server 2016 / Win10 1607
}
try {
$msiPath = Join-Path $env:SystemRoot 'System32\msiexec.exe'
if (-not (Test-Path $msiPath)) {
Write-Output 'UNKNOWN: msiexec.exe not found'
exit 2
}
$fileVer = (Get-Item $msiPath).VersionInfo.FileVersionRaw
$osBuild = [Version](Get-CimInstance Win32_OperatingSystem).Version
$trainKey = '{0}.{1}.{2}' -f $osBuild.Major, $osBuild.Minor, $osBuild.Build
if (-not $MinVersions.ContainsKey($trainKey)) {
Write-Output "UNKNOWN: OS build $trainKey not in patch table; check MSRC advisory manually"
exit 2
}
$required = $MinVersions[$trainKey]
if ($fileVer -ge $required) {
Write-Output "PATCHED: msiexec.exe $fileVer >= required $required on build $trainKey"
exit 0
} else {
Write-Output "VULNERABLE: msiexec.exe $fileVer < required $required on build $trainKey"
exit 1
}
} catch {
Write-Output "UNKNOWN: $($_.Exception.Message)"
exit 2
}
If you remember one thing.
AlwaysInstallElevated is 0 estate-wide (a bigger problem if not), (3) add the msiexec.exe-spawns-SYSTEM Sysmon rule to your SIEM as durable coverage for the next MSI LPE, which is inevitable. Revisit severity if a public PoC lands or CISA adds it to KEV — either event pushes this to HIGH and puts you on the 30-day mitigation clock.Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.