CVE-2026-58644 — Microsoft SharePoint Server Deserialization RCE

Deserialization of untrusted data (CVSS 9.8) lets a Site-Owner-authenticated attacker execute arbitrary code on on-prem SharePoint. Exploited as a zero-day; post-ex = IIS machine-key theft & ViewState persistence.
Threat
CVE-2026-58644 (SharePoint deserialization RCE)
Severity
EXPLOITED ITW
Type
On-prem SharePoint deserialization RCE
Access
Authenticated (≥ Site Owner) → network RCE
Version
v0.2 (Draft)
Author
HuntPack
Confidence
High (intel) · Medium (atomic IOCs pending)
01

Executive Summary

CVE-2026-58644 is a critical (CVSS 9.8) deserialization-of-untrusted-data vulnerability in on-premises Microsoft SharePoint Server 2016, 2019, and Subscription Edition, patched in the July 2026 "Patch Tuesday". Per Microsoft: "In a network-based attack, an attacker authenticated as at least a Site Owner could write arbitrary code to inject and execute code remotely on the SharePoint Server." Microsoft revised its bulletin to confirm exploitation in the wild — it was weaponized as a zero-day before patches shipped. CISA added it to the KEV catalog on 2026-07-16 with an FCEB remediation due date of 2026-07-19.

Although 58644 nominally requires Site Owner authentication, that bar is low in practice: this same July cycle also patched CVE-2026-56164 (missing-authentication EoP) and CVE-2026-45659 (RCE), and the operative real-world pattern is to chain an auth-bypass to reach Site-Owner context, then fire the 58644 deserialization gadget for reliable RCE. Post-exploitation follows the now-familiar on-prem SharePoint ("ToolShell"-lineage) tradecraft: stealing IIS machine keys (ASP.NET ValidationKey/DecryptionKey), forging __VIEWSTATE for durable, patch-surviving re-entry, dropping ASPX web shells, and deploying follow-on malware.

Because the deserialization payload itself is opaque, the reliable endpoint signal is the small set of high-fidelity behaviors it produces: the IIS worker (w3wp.exe) spawning a command interpreter, w3wp invoking the .NET compilers (csc.exe/vbc.exe) to materialize a gadget or web shell, ASPX/ASHX writes into the SharePoint LAYOUTS/web directories, and commands touching machine keys / web.config. These are the anchor hunts below.

Defender priority: Treat any on-prem SharePoint as presumed-compromised until proven clean. Do three things today — (1) apply the July 2026 SharePoint updates (they fix 58644 and the chainable 56164/45659), (2) rotate IIS/ASP.NET machine keys and restart IIS (patching without rotation leaves signed-ViewState persistence intact), and (3) enable AMSI Full Request Body scanning. Then hunt with Q1–Q6.

02

Source Review & Web Hunter Notes

TierSourceKey FindingCarry Fwd
1 · GovCISA KEV (2026-07-16)Added CVE-2026-58644 to KEV; active exploitation confirmed; FCEB due 2026-07-19; batch also included Fortinet FortiSandbox command-injection CVEs.Yes
1 · VendorMicrosoft MSRC / July 2026 Patch TuesdayDeserialization of untrusted data → RCE; requires ≥ Site Owner; affects SP 2016/2019/Subscription; bulletin revised to mark exploited-in-the-wild (zero-day); interim mitigation = AMSI Full Request Body scan.Yes
1 · VendorZero Day Initiative — July 2026 reviewCVSS 9.8; deserialization RCE; part of a record SharePoint patch set alongside 56164 / 45659.Yes
2 · ResearchThe Hacker News (2026-07-16)Post-ex = IIS machine-key theft + deserialization for persistence + web shells + malware; all supported on-prem versions affected; patch-alone insufficient.Yes
2 · NewsDailyCVE / Field Effect (2026-07)Critical deserialization RCE; chainable with same-cycle SharePoint auth flaws; machine-key rotation required for eviction.Partial

Intel gap (perishability): As of the pack date no vendor has published atomic IOCs (web-shell filenames, hashes, C2 IPs) specific to CVE-2026-58644. This pack is therefore behavior-anchored; the IOC appendix ships REPLACE_WITH_… placeholders to fill the moment your IR team or a vendor report yields campaign atomics. No atomic indicator here is fabricated.

03

Hunt Brief & Attack Chain

Hunt hypotheses (fidelity-ordered)

#HypothesisMITREConf
H1A SharePoint server's IIS worker (w3wp.exe) spawns a command interpreter — the signature of successful deserialization RCE / web shell.T1190, T1505.003, T1059HIGH
H2The IIS worker invokes a .NET compiler (csc.exe/vbc.exe) outside a deploy/patch window — dynamic compilation of a deserialization gadget or ASPX web shell.T1190, T1505.003, T1027.004MED
H3An ASPX/ASHX file is written into the SharePoint LAYOUTS or web-application directory by the IIS worker — web-shell drop.T1505.003HIGH
H4A process on the SharePoint host runs commands referencing machine keys / web.config — key theft to forge signed ViewState.T1552.001, T1606.001MED
H5The IIS worker (or a child) pulls a payload via a LOLBIN download utility — ingress tool transfer.T1105HIGH
H6A scheduled task or service is registered on the SharePoint/IIS server post-exploit — persistence beyond the web shell.T1053.005, T1543.003MED

Attack chain

StepBehaviorTelemetryHunt angle
1 · AccessReach Site-Owner context (stolen creds or chained auth-bypass 56164/45659).IIS access logs; SharePoint ULS; UserLogonNative audit (S7)
2 · ExploitPOST a crafted serialized object; unsafe deserialization → arbitrary code.IIS logs / ULS; AMSIS7; AMSI
3 · Executionw3wp.exe runs attacker code / spawns shell / invokes csc.exe.ProcessRollup2Q1, Q2
4 · Web shellASPX/ASHX shell dropped into web root / LAYOUTS.File-write eventsQ3
5 · Key theftSteal ASP.NET machine keys from web.config to forge ViewState.ProcessRollup2 (CommandLine)Q4
6 · Tooling / persistPull follow-on payload; ViewState re-entry (survives patch) + task/service.ProcessRollup2 / ScheduledTaskRegisteredQ5, Q6 + machine-key rotation
04

Consolidated IOC Table

This is a behavior-first pack. The atomic rows below are placeholders to be populated from your IR findings or a vendor report; the behavioral rows are the operative indicators today.

TypeValueConfActionContext
Behaviorw3wp.execmd/powershell/cscript/mshtahighdetectPost-exploit RCE / web shell (H1)
Behaviorw3wp.execsc.exe/vbc.exe outside deploy windowmediumhuntDeserialization gadget / shell compile (H2)
BehaviorASPX/ASHX write under SharePoint LAYOUTS/web dir by IIS workerhighhuntWeb-shell drop (H3)
BehaviorCommandLine referencing machineKey / ValidationKey / web.configmediumhuntKey theft → ViewState forgery (H4)
CVECVE-2026-58644 (+ chainable CVE-2026-56164 / -45659)highdetectPatch state = exposure signal
SHA256REPLACE_WITH_SHA256 (web shell / dropped payload)detectPopulate from IR
IPv4REPLACE_WITH_C2_IP (exploit source / C2)huntPopulate from IIS logs / IR
05

Affected Surface & Telemetry Matrix

SurfaceRequired telemetryPriorityGap risk
On-prem SharePoint 2016 / 2019 / SubscriptionFalcon sensor on the web front end (ProcessRollup2, file, network)CRITICALLow if sensor deployed
IIS worker process behaviorProcessRollup2 / SyntheticProcessRollup2HIGHLow
Web-directory file writes (ASPX)File-write events (FileCreateInfo / NewExecutableWritten)HIGHMedium — non-PE writes may not always emit
Deserialization / exploit requestIIS access logs / SharePoint ULS / WAF (non-Falcon)MEDIUMHigh — needs IIS log forwarding
Machine-key persistenceweb.config change auditing + config driftHIGHHigh — often unmonitored
06

ATT&CK Mapping

TacticTechniqueBehaviorQuery / Control
Initial AccessT1190 Exploit Public-Facing AppDeserialization RCE on SharePointS7, Patch/Hardening
Initial AccessT1078 Valid AccountsSite-Owner context (chained auth-bypass / stolen creds)S7 (IIS/ULS)
ExecutionT1059 Command & Scripting Interpreterw3wp spawns cmd/powershellQ1
Defense EvasionT1027.004 Compile After Deliveryw3wp invokes csc.exe/vbc.exeQ2
PersistenceT1505.003 Web ShellASPX shell in LAYOUTSQ3
Credential AccessT1552.001 Creds in FilesMachine keys from web.configQ4
Defense EvasionT1606.001 Forge Web Credentials (ViewState)Signed-ViewState forgery via stolen keyMachine-key rotation (S12)
Ingress / C2T1105 / T1071.001LOLBIN download; web-tier egressQ5
PersistenceT1053.005 / T1543.003 Task / ServiceScheduled task / service post-exploitQ6
07

Native Audit-Log Hunts (non-CQL)

  • IIS access logs: Review POSTs to SharePoint _layouts endpoints with oversized or Base64-heavy request bodies and serialized-object payloads. Correlate suspicious client IPs and the authenticating account against the same window as any Falcon hit — 58644 requires an authenticated session, so the abused account is an investigative lead.
  • SharePoint ULS logs: Search for deserialization exceptions, ViewState MAC validation errors, and unexpected application-pool identity actions.
  • AMSI: After enabling AMSI Full Request Body scanning, monitor Defender/AMSI events on the SharePoint servers for blocked request bodies — a direct exploitation signal.
  • web.config integrity: Baseline machineKey values; alert on any change to ValidationKey/DecryptionKey outside a planned rotation. An attacker-known key = live persistence.
  • Filesystem sweep: Enumerate *.aspx/*.ashx under the SharePoint web root and LAYOUTS folders; diff against a known-good list and creation timestamps. Also review the ASP.NET Temporary ASP.NET Files tree for freshly compiled assemblies.
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Q1 · IIS worker (w3wp.exe) spawns a command interpreter
CONF HIGHFP LOWCOST LOW

Looks for: the canonical post-exploit tell — the SharePoint/IIS worker process spawning a shell or script host. On a healthy SharePoint server this is rare, making it high-fidelity for deserialization RCE.

// HUNT: SharePoint/IIS worker spawning a command interpreter (deserialization RCE / web shell)
// MITRE: T1190, T1505.003, T1059
// CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/^w3wp\.exe$/i
| FileName=/^(cmd|powershell|pwsh|cscript|wscript|mshta|whoami|nltest|net1?)\.exe$/i
| table([ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, aid], limit=200)
Q2 · IIS worker invokes the .NET compiler (csc.exe / vbc.exe)
CONF MEDFP MEDCOST LOW

Looks for: the IIS worker spawning the C#/VB compilers — the signature of on-the-fly ASPX / deserialization-gadget compilation into a web shell. FP: ASP.NET legitimately runs csc.exe on first page-compile after an app-pool recycle or patch. Baseline recycle/patch windows and exclude them; treat compiles that immediately precede a Q1/Q3 hit as high-priority.

// HUNT: IIS worker invoking csc.exe/vbc.exe (dynamic gadget / web-shell compile)
// MITRE: T1190, T1505.003, T1027.004
// CONF: med  FP: med  COST: low | REQUIRES: ProcessRollup2
// TUNING: exclude app-pool recycle / patch-window first-compiles; prioritize compiles adjacent to Q1/Q3
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/^w3wp\.exe$/i
| FileName=/^(csc|vbc|cvtres)\.exe$/i
| table([ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, aid], limit=200)
Q3 · ASPX/ASHX web shell written into SharePoint web directories
CONF HIGHFP MEDCOST LOW

Looks for: the IIS worker writing a web-servable file into LAYOUTS / wwwroot / TEMPLATE. FP: legitimate SharePoint solution (WSP) deployment, patching, and provisioning also write .aspx — scope to your SharePoint servers, correlate with Q1/Q2 in the same window, and exclude known maintenance windows and the SharePoint timer service account.

// HUNT: ASPX/ASHX written into SharePoint LAYOUTS / web-app dir by the IIS worker
// MITRE: T1505.003
// CONF: high  FP: med  COST: low | REQUIRES: file-write telemetry
// TUNING: exclude planned WSP/solution deploys & patch windows; scope to SharePoint web front ends
#event_simpleName=/PeFileWritten|NewExecutableWritten|FileCreateInfo|NewFileWritten/
| ContextBaseFileName=/^w3wp\.exe$/i
| TargetFileName=/\\(LAYOUTS|wwwroot|TEMPLATE|VirtualDirectories)\\.*\.(aspx|ashx|asmx|asax)$/i
| table([ComputerName, ContextBaseFileName, TargetFileName, aid], limit=200)
Q4 · Commands referencing machine keys / web.config (key theft)
CONF HIGHFP MEDCOST LOW

Looks for: a process reading or referencing ASP.NET machine keys or web.config — the material stolen to forge signed ViewState and persist across patches. FP: administrators and config-management tooling legitimately read web.config — pivot on parent = w3wp/shell (from Q1) and non-admin/service context.

// HUNT: machine-key / web.config access — ViewState-forgery persistence prep
// MITRE: T1552.001, T1606.001
// CONF: high  FP: med  COST: low | REQUIRES: ProcessRollup2
// TUNING: exclude sanctioned admin hosts & config-mgmt agents; require w3wp/shell parent
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| CommandLine=/(machineKey|MachineKeySection|ValidationKey|DecryptionKey|Get-SPMachineKey|web\.config)/i
| table([ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, aid], limit=200)
Q5 · LOLBIN download utility under the IIS worker tree
CONF HIGHFP LOWCOST LOW

Looks for: ingress tool transfer — certutil / bitsadmin / curl pulling a payload, parented by the IIS worker or a shell it spawned. Very rare on a web server.

// HUNT: LOLBIN download utility executed under the IIS worker / shell tree
// MITRE: T1105
// CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/^(w3wp|cmd|powershell|pwsh)\.exe$/i
| FileName=/^(certutil|bitsadmin|curl|mpcmdrun)\.exe$/i
| CommandLine=/(http|ftp|-urlcache|Invoke-WebRequest|DownloadString|DownloadFile)/i
| table([ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, aid], limit=200)
Q6 · Scheduled task / service created on a SharePoint host
CONF MEDFP MEDCOST LOW

Looks for: post-exploit persistence beyond the web shell. Scope the result set to your SharePoint/IIS server group. FP: patch agents, backup, and monitoring tools register tasks/services legitimately — exclude known management software by image path and author.

// HUNT: scheduled task / service registration on a SharePoint/IIS server (persistence)
// MITRE: T1053.005, T1543.003
// CONF: med  FP: med  COST: low | REQUIRES: ScheduledTaskRegistered / ServiceInstalled
// TUNING: exclude patch/backup/monitoring agents by ServiceImagePath & TaskAuthor
#event_simpleName=/ScheduledTaskRegistered|CreateService|ModifyServiceBinary/
| table([ComputerName, UserName, ScheduledTaskName, ServiceName, ServiceImagePath, aid], limit=200)
09

CrowdStrike Custom IOA Recommendations

IOAPatternActionExclusions
SharePoint IIS shell spawnParent Image ends \w3wp.exe AND Image = cmd/powershell/cscript/wscript/mshtaDetect → Block (high conf)SharePoint timer service maintenance jobs (validate first)
IIS worker → compilerParent w3wp.exe AND Image = csc.exe/vbc.exe outside a deploy windowDetectApp-pool recycle / patch first-compile
Web-tier LOLBIN downloadParent w3wp.exe/shell AND Image = certutil/bitsadmin/curl AND CommandLine contains URLBlockNone expected on web front end

Promote Q1 and Q5 to blocking IOAs after a short baseline; keep Q2/Q3/Q4/Q6 as investigate-only scheduled searches until tuned to your farm.

10

Machine-Readable IOC Appendix

Falcon IOC Management CSVbulk import
type,value,action,severity,expiration,description,tags
sha256,REPLACE_WITH_SHA256,prevent,critical,2027-01-17,CVE-2026-58644 web shell / payload,campaign:SharePoint-58644
ipv4,REPLACE_WITH_C2_IP,detect,high,2026-10-17,CVE-2026-58644 exploit source / C2,campaign:SharePoint-58644
domain,REPLACE_WITH_C2_DOMAIN,detect,high,2026-10-17,CVE-2026-58644 C2,campaign:SharePoint-58644
Behavioral Signaturesoperative today
w3wp.exe -> cmd.exe|powershell.exe|cscript.exe|mshta.exe   (IIS worker shell spawn)
w3wp.exe -> csc.exe|vbc.exe outside deploy window          (gadget / shell compile)
*.aspx|*.ashx written into \LAYOUTS\ or \wwwroot\ by w3wp    (web shell drop)
CommandLine ~ machineKey|ValidationKey|DecryptionKey|web.config   (key theft)
Named CVEs (this chain)patch signal
CVE-2026-58644   SharePoint deserialization RCE, CVSS 9.8 (KEV 2026-07-16, exploited zero-day)
CVE-2026-56164   SharePoint missing-auth EoP (KEV 2026-07-14, chainable to reach Site Owner)
CVE-2026-45659   SharePoint RCE (KEV, earlier in the ToolShell lineage)
July 2026 CU     SharePoint 2016/2019/Subscription cumulative update = the fix
Patch / Mitigation Auditexposure check
# On each SharePoint server:
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 5
# Confirm July 2026 SharePoint update present; confirm AMSI Full Request Body enabled;
# confirm machine keys rotated AFTER patch (see Playbooks). Enumerate web-servable aspx:
Get-ChildItem -Recurse -Include *.aspx,*.ashx "C:\Program Files\Common Files\microsoft shared\Web Server Extensions" |
  Sort-Object CreationTime -Descending | Select-Object FullName,CreationTime -First 40
11

Detection Validation Gates

  • Telemetry ready: Confirm Falcon sensors are installed and reporting on every on-prem SharePoint web front end (not just app/DB tiers).
  • Benign baseline: Run Q2, Q3 and Q6 across a normal patch/maintenance and app-pool-recycle window first to learn legitimate csc.exe first-compile, WSP-deploy, and agent noise, then apply the TUNING exclusions before alerting.
  • Positive test: In a lab, launch cmd.exe as the SharePoint app-pool identity from w3wp context and confirm Q1 fires; drop a benign .aspx into LAYOUTS and confirm Q3 fires.
  • Promotion: Promote Q1/Q5 to blocking IOAs only after the baseline shows zero benign hits for a rolling week; keep Q2 investigate-only given legitimate first-compile activity.
12

Hardening — Tiered

Immediate (this week — no compatibility risk)
  • Patch: Apply the July 2026 SharePoint security updates to all SP 2016/2019/Subscription servers (fixes CVE-2026-58644 and the chainable CVE-2026-56164/-45659). MITRE M1051.
  • Rotate IIS/ASP.NET machine keys on every SharePoint server after patching, then restart IIS — this is what evicts signed-ViewState persistence. Patch-without-rotate leaves the attacker in. Per CISA guidance; MITRE M1015/M1027.
  • Enable AMSI Full Request Body scanning on SharePoint (Microsoft interim mitigation) so request-body deserialization attempts are inspected/blocked. MITRE M1050.
Near term (1–4 weeks — pilot first)
  • Remove SharePoint from direct internet exposure — front with a WAF / reverse proxy and require pre-auth (VPN/ZTNA) for external access; this also raises the bar on reaching Site-Owner context. MITRE M1035.
  • Constrain the app-pool identity — run SharePoint pools as least-privileged service accounts; deny local admin and outbound internet where feasible. MITRE M1026, M1037 (egress).
  • Tighten Site-Owner sprawl & web.config integrity — audit and minimize Site Collection / Site Owner grants (the auth bar 58644 needs); add file-integrity alerting on machineKey changes. MITRE M1018, M1022.
Strategic (1–3 months)
  • Migrate off end-of-support versions — SP 2016/2019 reached end-of-extended-support in July 2026; plan migration to SharePoint Subscription Edition or SharePoint Online. MITRE M1051 (lifecycle).
  • Application allow-listing (WDAC/AppLocker) on web servers so w3wp cannot launch cmd/powershell/csc/LOLBINs. MITRE M1038.
13

Deployable Playbooks

Rotate ASP.NET machine keys on a SharePoint farm (run after patching)

# Rotate the farm ViewState/machine keys via SharePoint management shell.
# Do this on ONE server; the farm propagates. Then IISRESET on each WFE.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
Set-SPMachineKey -WebApplication (Get-SPWebApplication)   # rotate per web app
Update-SPMachineKey -WebApplication (Get-SPWebApplication) # push new key to farm
# On EACH web front end:
iisreset /noforce
# Verify old key no longer accepted: forged ViewState from the stolen key now fails MAC validation.

Enable AMSI Full Request Body scanning (interim mitigation)

# SharePoint Subscription / patched builds expose AMSI request-body scanning.
# Enable and set to Full Request Body mode, then recycle the app pools.
Set-SPManagedAccountAmsi -EnableAmsi $true    # where supported
# In Central Admin: Security -> Configure AMSI -> enable, mode = Full Request Body.
# Confirm Microsoft Defender / a compatible AV with AMSI is running on each WFE.
Restart-Service W3SVC

Enumerate suspect ASPX + freshly compiled assemblies

$roots = @(
  "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\TEMPLATE\LAYOUTS",
  "C:\inetpub\wwwroot\wss\VirtualDirectories"
)
Get-ChildItem -Path $roots -Recurse -Include *.aspx,*.ashx,*.asmx -ErrorAction SilentlyContinue |
  Sort-Object LastWriteTime -Descending |
  Select-Object FullName, CreationTime, LastWriteTime, Length | Format-Table -Auto
# Also review recently compiled deserialization gadgets under Temporary ASP.NET Files:
Get-ChildItem "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files" -Recurse -Include *.dll -ErrorAction SilentlyContinue |
  Sort-Object LastWriteTime -Descending | Select-Object FullName, LastWriteTime -First 40
14

Containment Runbook

PhaseActionsOwnerEvidence
IsolateNetwork-contain the SharePoint host in Falcon; pull it from the load balancer / block external ingress. Do NOT power off (preserve memory/web shells).SOC / IRFalcon host timeline; IIS logs
EradicateRemove identified web shells + compiled gadgets; kill malicious tasks/services; rotate machine keys + IISRESET (mandatory — otherwise persistence survives); patch to July 2026 build.SharePoint admin / IRFile hashes; web.config diff
Credential resetReset the SharePoint app-pool / farm service account, the abused Site-Owner account, and any secrets that lived in web.config; assume machine key + those secrets are attacker-known.IAMReset tickets
RecoverReturn to service only after clean scan + rotated keys + patched build; monitor Q1–Q6 for reinfection for 30 days.SOCClean hunt runs
ReportFederal civilian agencies: track against KEV due date 2026-07-19; document per internal IR policy.IR leadKEV compliance record
15

Detection Coverage Map

TechniqueBehaviorCQLIOACoverage
T1190 / T1078 AccessDeserialization request + Site-Owner auth— (IIS/ULS native)Partial
T1059 Executionw3wp spawns shellQ1YesGood
T1027.004 Compile After Deliveryw3wp → csc/vbcQ2YesPartial
T1505.003 Web ShellASPX dropQ3Good
T1552.001 / T1606.001 Key theft & ViewState forgerymachineKey/web.config accessQ4Partial
T1105 / T1071.001 Ingress / C2LOLBIN download / egressQ5YesGood
T1053.005 / T1543.003 PersistenceTask/serviceQ6Partial
Signed-ViewState re-entryForged ViewState with stolen keyGAPGAP

Gaps: The deserialization request itself is only visible in IIS/ULS logs (S7), and re-use of a stolen machine key produces valid-looking traffic that endpoint telemetry cannot distinguish — the only reliable control there is key rotation, not detection. Populate the atomic IOC placeholders (S10) once IR yields them to close the CVE-to-atomic gap.

16

Hunt Summary Ticket

TITLE:      CVE-2026-58644 — SharePoint deserialization RCE (exploited ITW, CVSS 9.8)
SEVERITY:   Critical (KEV 2026-07-16, due 2026-07-19)
SCOPE:      All on-prem SharePoint 2016/2019/Subscription
HYPOTHESIS: Site-Owner (chained) -> deserialization RCE -> w3wp shell/csc -> aspx web shell -> machine-key theft -> ViewState persistence
QUERIES:    Q1 w3wp shell | Q2 w3wp->csc/vbc | Q3 aspx drop | Q4 machineKey access | Q5 LOLBIN dl | Q6 task/service
DO FIRST:   (1) Patch July 2026 build  (2) ROTATE machine keys + IISRESET  (3) enable AMSI Full Request Body
FINDINGS:   ____ (populate: hosts, shells, abused Site-Owner acct, key-rotation status)
GAPS:       Deserialization request = IIS/ULS only; stolen-key reuse not endpoint-detectable (rotate to remediate)
ACTIONS:    Contain -> eradicate web shells/gadgets -> rotate keys/secrets -> patch -> 30-day watch
OWNER:      ____   VERSION: v0.2 (2026-07-17)
17

Changelog

v0.22026-07-24CQL correctness pass. All table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.
v0.12026-07-17Initial pack. 6 behavior-anchored CQL hunts (incl. a deserialization-specific w3wp→compiler hunt), 3 Custom IOA recs, tiered hardening (patch + mandatory machine-key rotation + AMSI), playbooks and containment. Atomic IOCs seeded as placeholders pending a vendor/IR report.
18

References

TierSourceUsed ForAccessed
1 · GovCISA — Adds Three KEV (2026-07-16)KEV listing, active exploitation, due date2026-07-17
1 · VendorNVD — CVE-2026-58644Deserialization RCE, CVSS 9.8, affected versions2026-07-17
1 · VendorZero Day Initiative — July 2026 Security Update ReviewCVSS, deserialization class, SharePoint patch set context2026-07-17
2 · NewsThe Hacker News — CISA adds exploited SharePoint RCE zero-day CVE-2026-58644Zero-day confirmation; Site-Owner requirement; post-ex (machine-key theft, deserialization persistence, web shells)2026-07-17
2 · NewsField Effect — Microsoft July 2026 Patch Tuesday SharePointChainable SharePoint CVEs; AMSI mitigation; rotate-keys guidance2026-07-17