Microsoft SharePoint Deserialization of Untrusted Data (CVE-2026-20963)
Detects exploitation of CVE-2026-20963, a deserialization of untrusted data vulnerability in Microsoft SharePoint. Attackers can send crafted serialized payloads to SharePoint endpoints, leading to remote code execution in the context of the SharePoint application pool. This CVE is listed on the CISA KEV catalog, indicating active exploitation in the wild.
Vulnerability Intelligence
KEV — Known ExploitedAffected Software
- Vendor
- Microsoft
- Product
- SharePoint
Weakness (CWE)
Timeline
- Disclosed
- March 18, 2026
References & Proof of Concept
CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
What is CVE-2026-20963 Microsoft SharePoint Deserialization of Untrusted Data (CVE-2026-20963)?
Microsoft SharePoint Deserialization of Untrusted Data (CVE-2026-20963) (CVE-2026-20963) maps to the Initial Access and Execution and Persistence tactics — the adversary is trying to get into your network in MITRE ATT&CK.
This page provides production-ready detection logic for Microsoft SharePoint Deserialization of Untrusted Data (CVE-2026-20963), covering the data sources and telemetry it touches: Microsoft Defender for Endpoint, Microsoft Sentinel. The queries below are rated critical severity at high confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.
MITRE ATT&CK
- Tactic
- Initial Access Execution Persistence
union DeviceNetworkEvents, DeviceProcessEvents
| where Timestamp > ago(7d)
| where DeviceName has_any ("sharepoint", "wfe", "app") or InitiatingProcessName has_any ("w3wp.exe", "owstimer.exe", "spmigrationjob.exe")
| where (ActionType == "InboundConnectionAccepted" and RemotePort in (80, 443)) or (FileName in~ ("powershell.exe", "cmd.exe", "wscript.exe", "cscript.exe", "mshta.exe", "certutil.exe") and InitiatingProcessParentFileName =~ "w3wp.exe")
| extend Indicator = case(
FileName in~ ("powershell.exe", "cmd.exe", "wscript.exe", "cscript.exe", "mshta.exe", "certutil.exe") and InitiatingProcessParentFileName =~ "w3wp.exe", "SharePoint worker spawned suspicious child process",
ActionType == "InboundConnectionAccepted", "Inbound connection to SharePoint host",
"Unknown"
)
| project Timestamp, DeviceName, ActionType, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessParentFileName, RemoteIP, RemotePort, Indicator Detects SharePoint IIS worker process (w3wp.exe) spawning suspicious child processes indicative of post-deserialization code execution, or inbound network connections to SharePoint hosts.
Data Sources
Required Tables
False Positives
- Legitimate SharePoint administrative scripts launched via scheduled tasks under w3wp.exe context
- Monitoring agents or backup software that invoke cmd.exe under IIS worker processes
- SharePoint health analyzer tasks spawning PowerShell for maintenance
Sigma rule & cross-platform mapping
The detection logic for Microsoft SharePoint Deserialization of Untrusted Data (CVE-2026-20963) (CVE-2026-20963) above is provided in a vendor-neutral
form so you can deploy it on any SIEM. The same logic is shipped here as native
KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the
following logsource:
logsource:
category: process_creation
product: windows Browse the community-maintained Sigma rules for this technique:
Platform-specific guides for CVE-2026-20963
Testing Methodology
Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Simulate SharePoint Deserialization Child Process Spawn
Expected signal: Process creation event (Event ID 4688 or Sysmon Event ID 1) with ParentImage matching w3wp_sim.exe and Image matching powershell.exe
- Test 2Craft and Submit Malformed Serialized Payload to SharePoint Endpoint
Expected signal: IIS access log entry showing POST to /_api/web/lists with non-JSON content-type or anomalous body size; WAF or SIEM alert on malformed serialized content
- Test 3Simulate Credential Dumping Post-Exploitation via w3wp.exe Context
Expected signal: Process creation event showing cmd.exe or tasklist.exe executed under SharePoint application pool identity; Event ID 4656/4663 if LSASS handle access is attempted
Response Playbook
Triage
- Confirm whether the affected SharePoint server is patched for CVE-2026-20963 by checking the installed SharePoint update level against Microsoft's advisory at https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20963.
- Review IIS logs on the SharePoint server for anomalous POST requests to /_api/, /_layouts/, or /_vti_bin/ endpoints around the time of the alert, paying attention to unusually large request bodies or unexpected content-types.
- Identify the child process spawned by w3wp.exe: capture its full command line, loaded modules, and network connections established immediately after launch to determine attacker intent (reconnaissance, lateral movement, data exfiltration).
- Correlate the source IP of suspicious HTTP requests against known threat actor infrastructure and internal asset inventory to assess whether this is an internal or external origin.
Containment
- Isolate the affected SharePoint server from the network at the firewall or EDR level immediately if active exploitation is confirmed, to prevent lateral movement or further command-and-control activity.
- Revoke application pool identity credentials and rotate service account passwords for all SharePoint-related service accounts, particularly those with domain privileges, to prevent credential reuse.
Evidence Collection
- Collect full IIS access logs, application event logs, and Windows Security event logs (Event IDs 4624, 4688, 4698, 7045) from the affected SharePoint host covering at minimum 48 hours prior to detection.
- Capture a memory image of the w3wp.exe process and any spawned child processes using tools such as WinPmem or ProcDump before remediation to preserve forensic evidence of the injected payload.
Escalation Criteria
- ! Escalate immediately if the spawned process establishes outbound network connections to external IPs, indicating active C2 communication or data exfiltration.
- ! Escalate if the compromised SharePoint application pool account is a domain service account with elevated privileges, as this significantly expands the blast radius.
Investigation Guide
Forensic Artifacts
- >
IIS logs at C:\inetpub\logs\LogFiles\W3SVC* containing anomalous POST requests with large bodies or unusual user-agents to SharePoint API endpoints - >
Windows event ID 4688 (process creation) entries showing w3wp.exe as parent of PowerShell, cmd.exe, or other LOLBins - >
Prefetch files for any processes spawned by w3wp.exe, located at C:\Windows\Prefetch\, confirming execution history
Tuning Guidance
Tune by adding known SharePoint maintenance windows and authorized automation service account names to an exclusion list. If your organization uses SharePoint workflows that legitimately invoke PowerShell, capture those specific command-line patterns and exclude them. Consider reducing false positives further by adding a network connection filter — alert only when the child process also establishes an external connection within 60 seconds of spawn. Raise confidence threshold on detections where the child process is certutil.exe or mshta.exe, as these have very limited legitimate use under w3wp.exe.
Hunting Queries
Hunt for outbound network connections initiated by processes whose parent is the SharePoint IIS worker process (w3wp.exe), which may indicate successful exploitation and C2 beaconing.
DeviceNetworkEvents
| where Timestamp > ago(14d)
| where InitiatingProcessParentFileName =~ "w3wp.exe"
| where RemoteIPType == "Public"
| summarize ConnectionCount=count(), RemoteIPs=make_set(RemoteIP) by DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine
| where ConnectionCount > 0
| sort by ConnectionCount desc index=sysmon EventCode=3
| where ParentImage LIKE "%w3wp.exe%"
| where NOT (dest_ip LIKE "10.%" OR dest_ip LIKE "192.168.%" OR dest_ip LIKE "172.16.%")
| stats count by host, Image, CommandLine, dest_ip, dest_port
| sort -count Atomic Red Team Tests
Simulates the post-exploitation behavior of CVE-2026-20963 by directly launching PowerShell as a child of a renamed w3wp.exe copy, triggering process-lineage-based detections without exploiting a real SharePoint instance.
Command
Copy-Item "$env:SystemRoot\System32\inetsrv\w3wp.exe" -Destination "$env:TEMP\w3wp_sim.exe"; Start-Process "$env:TEMP\w3wp_sim.exe" -ArgumentList "-ap \"SharePoint - 80\"" -PassThru | ForEach-Object { Start-Sleep 2; Start-Process powershell.exe -ArgumentList "-NoProfile -Command whoami" } Cleanup
Remove-Item "$env:TEMP\w3wp_sim.exe" -Force -ErrorAction SilentlyContinue Expected Telemetry
Process creation event (Event ID 4688 or Sysmon Event ID 1) with ParentImage matching w3wp_sim.exe and Image matching powershell.exe
Expected Detection
Alert: SharePoint worker spawned suspicious child process — PowerShell spawned from IIS worker
In a lab SharePoint environment, sends a crafted HTTP POST with a malformed BinaryFormatter serialized payload to a SharePoint API endpoint to test WAF and application-layer detections. Does not achieve RCE unless a vulnerable SharePoint version is present.
Command
python3 -c "
import requests, base64
payload = b'\x00\x01\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x00\x00\x00\x00\x0c\x02\x00\x00\x00'
payload_b64 = base64.b64encode(payload).decode()
headers = {'Content-Type': 'application/json', 'User-Agent': 'Mozilla/5.0'}
r = requests.post('http://SHAREPOINT_LAB_HOST/_api/web/lists', headers=headers, data=payload, verify=False, timeout=10)
print(r.status_code, r.text[:200])
" Cleanup
No cleanup required — HTTP request only, no persistent artifacts Expected Telemetry
IIS access log entry showing POST to /_api/web/lists with non-JSON content-type or anomalous body size; WAF or SIEM alert on malformed serialized content
Expected Detection
IIS log anomaly detection or WAF rule triggering on BinaryFormatter magic bytes in HTTP body
Simulates the follow-on credential dumping behavior an attacker might perform after exploiting CVE-2026-20963, by running a LSASS memory access attempt from a process mimicking the SharePoint worker identity.
Command
runas /user:$env:COMPUTERNAME\SharePointAppPool "cmd.exe /c tasklist /fi 'imagename eq lsass.exe' && echo LSASS_ACCESS_SIMULATED" Cleanup
No persistent changes — command output only Expected Telemetry
Process creation event showing cmd.exe or tasklist.exe executed under SharePoint application pool identity; Event ID 4656/4663 if LSASS handle access is attempted
Expected Detection
Credential access alert: SharePoint service account attempting LSASS enumeration post-exploitation