Skip to main content
Vulnerability Database/CVE-2026-96251

CVE-2026-96251: Microsoft PowerShell RCE Vulnerability

CVE-2026-96251 is a remote code execution vulnerability in Microsoft PowerShell caused by reliance on untrusted inputs in security decisions. Attackers can exploit this to execute unauthorized code over a network.

Published:

CVE-2026-96251 Overview

CVE-2026-96251 is a remote code execution vulnerability in Microsoft PowerShell. The flaw stems from reliance on untrusted inputs when making a security decision [CWE-807]. An unauthenticated attacker can execute arbitrary code over the network when a user is convinced to interact with crafted content. Microsoft published the advisory through the Microsoft Security Response Center (MSRC).

The vulnerability carries a network attack vector and requires user interaction. Successful exploitation compromises confidentiality, integrity, and availability of the target system. Administrators running PowerShell in automation, remoting, or scripting workflows should prioritize patching.

Critical Impact

Successful exploitation of CVE-2026-96251 allows unauthorized remote code execution on hosts running vulnerable Microsoft PowerShell versions, potentially leading to full system compromise.

Affected Products

  • Microsoft PowerShell (refer to the Microsoft Security Update Guide for specific affected versions)
  • Windows systems with vulnerable PowerShell installations
  • Automation and remoting environments relying on PowerShell

Discovery Timeline

  • 2026-10-13 - CVE CVE-2026-96251 published to NVD
  • 2026-10-13 - Last updated in NVD database

Technical Details for CVE-2026-96251

Vulnerability Analysis

The vulnerability resides in how Microsoft PowerShell processes inputs that influence security-relevant decisions. PowerShell relies on attacker-controllable data when evaluating trust boundaries, allowing adversaries to subvert security checks. When a user interacts with crafted content, PowerShell proceeds down an execution path intended for trusted inputs.

The outcome is arbitrary code execution in the user's security context. Because the attack vector is network-based, delivery can occur through phishing links, malicious scripts hosted on file shares, or compromised internal services that return PowerShell payloads. The required user interaction typically means opening a file, executing a script, or launching a command referencing attacker-controlled content.

Root Cause

The underlying weakness is classified as [CWE-807]: Reliance on Untrusted Inputs in a Security Decision. PowerShell makes trust determinations based on data that an attacker can manipulate, bypassing intended protection mechanisms such as execution policy, module loading restrictions, or signature verification logic.

Attack Vector

An attacker crafts PowerShell content that influences a trust decision inside the interpreter. The victim must execute or load this content through a PowerShell session, script invocation, or module import. Once the manipulated trust check passes, the attacker's code runs with the privileges of the invoking user. No prior authentication to the target is required. Refer to the Microsoft Security Update Guide for exploitation specifics.

Stop Remote Code Execution Before It Runs

Singularity™ Endpoint detects and blocks exploit attempts at machine speed, including zero-days and novel attack techniques.

Stop Exploit Attempts

Detection Methods for CVE-2026-96251

Indicators of Compromise

  • Unexpected powershell.exe or pwsh.exe child processes spawned from Office applications, email clients, or browser processes
  • PowerShell command lines containing encoded (-EncodedCommand), hidden (-WindowStyle Hidden), or bypass (-ExecutionPolicy Bypass) flags from untrusted sources
  • Loading of unsigned PowerShell modules or scripts from network paths, temp directories, or user profile locations
  • Outbound network connections initiated by PowerShell to previously unseen domains or IP addresses

Detection Strategies

  • Enable PowerShell Script Block Logging (Event ID 4104) and Module Logging to capture executed script content
  • Correlate PowerShell execution events with parent process lineage to identify suspicious invocation chains
  • Alert on PowerShell processes that spawn cmd.exe, rundll32.exe, regsvr32.exe, or other living-off-the-land binaries

Monitoring Recommendations

  • Forward PowerShell Operational logs (Microsoft-Windows-PowerShell/Operational) to a centralized SIEM for correlation
  • Monitor Antimalware Scan Interface (AMSI) telemetry for scripts that bypass or disable AMSI inspection
  • Track execution of signed binaries that load untrusted scripts or modules across the environment

How to Mitigate CVE-2026-96251

Immediate Actions Required

  • Apply the Microsoft security update referenced in the Microsoft Security Update Guide to all affected PowerShell installations
  • Inventory endpoints and servers running PowerShell and prioritize internet-facing or high-privilege systems
  • Restrict PowerShell execution to signed scripts using AllSigned or RemoteSigned execution policies via Group Policy

Patch Information

Microsoft has published remediation guidance in the Microsoft Security Update Guide for CVE-2026-96251. Administrators should consult the advisory for the complete list of affected PowerShell versions and corresponding update packages, then deploy through Windows Update, WSUS, or their standard patch management workflow.

Workarounds

  • Enforce PowerShell Constrained Language Mode on endpoints that do not require full language functionality
  • Disable or restrict PowerShell Remoting (WinRM) on systems that do not need remote management
  • Apply AppLocker or Windows Defender Application Control (WDAC) policies to block unsigned PowerShell scripts and modules
  • Train users to avoid executing PowerShell scripts or commands from untrusted sources, including email attachments and web downloads
bash
# Configuration example: enforce signed script execution and constrained language mode
Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope LocalMachine
[Environment]::SetEnvironmentVariable('__PSLockdownPolicy', '4', 'Machine')

# Enable PowerShell Script Block Logging via registry
$RegPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging'
New-Item -Path $RegPath -Force | Out-Null
Set-ItemProperty -Path $RegPath -Name 'EnableScriptBlockLogging' -Value 1

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.