Detect Microsoft SharePoint Deserialization of Untrusted Data (CVE-2026-20963) in Sumo Logic CSE
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.
MITRE ATT&CK
- Tactic
- Initial Access Execution Persistence
Sumo Detection Query
_sourceCategory=windows/events OR _sourceCategory=sysmon
| where (ParentImage matches "*w3wp.exe*" and (Image matches "*powershell.exe*" or Image matches "*cmd.exe*" or Image matches "*wscript.exe*" or Image matches "*cscript.exe*" or Image matches "*mshta.exe*" or Image matches "*certutil.exe*" or Image matches "*bitsadmin.exe*"))
| fields _messageTime, _sourceHost, ParentImage, Image, CommandLine
| sort by _messageTime desc Sumo Logic query detecting SharePoint IIS worker process spawning suspicious child processes, a strong signal of deserialization payload execution.
Data Sources
Required Tables
False Positives & Tuning
- SharePoint health checks that invoke system utilities
- IT automation tools running under IIS worker process context
- Antivirus or EDR agents initiating scans via w3wp.exe
Other platforms 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
Related Techniques
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