Security & Threat Intelligence

The Watch

The Signal

Actively exploited SharePoint RCE steals keys that outlive your patch.

CVE-2026-50522 is unauthenticated RCE against on-prem SharePoint 2016, 2019, and Subscription Edition. CVSS 9.8, public PoC live, exploitation confirmed. The mechanism matters: attackers extract the ASP.NET validationKey and decryptionKey, which lets them forge trusted tokens indefinitely. Patching alone does not close that door. Patch, rotate the keys, restart IIS, then hunt for forged tokens and web shells.

In Play

  1. Patch-Proof Persistence: SharePoint & 7-Zip

    CVE-2026-50522 (CVSS 9.8) is under active exploitation on on-prem SharePoint, and attackers extract ASP.NET machine keys that survive the patch to forge auth tokens indefinitely. 7-Zip's XZ heap-overflow RCE compounds the theme: it has no auto-updater, so every unpatched endpoint stays exposed until someone manually intervenes.

    Ask Clarity
  2. AI Coding Tools Weaponized as a Worm Host

    SANDWORM_MODE, a self-propagating npm worm, spread through 19 malicious packages and pioneered rogue MCP server injection into Claude Desktop, Cursor, VSCode and Windsurf — instructing the AI assistant itself to steal credentials. It self-propagates via stolen npm, GitHub and SSH tokens. Traditional SCA won't catch it; CrowdStrike shipped 65% of detections.

    Ask Clarity
  3. OAuth Token-Exchange Systemic Gap

    CVE-2026-59208 in n8n exposes that RFC 9207's issuer-check protection was never extended to back-channel token exchange grants (RFC 8693/7523/7522) — a token from one tenant can resolve to a same-named account in another. The pattern likely extends to any multi-tenant or agent orchestration architecture. Separately, ServiceNow denies its AI Platform RCE is exploited while threat intel says otherwise.

    Ask Clarity
  4. Vendor & Governance Risk Signals

    Anthropic's $1.5B settlement for training Claude on pirated books makes training-data provenance a contract line item. Suno sat on a November 2025 breach for eight months. State AI legislation crossed 2,000 bills in 2026 with zero federal preemption. None carries a CVE; all reshape the vendor-risk and compliance file.

    Ask Clarity

Deep Dives

SharePoint's Stolen Keys Outlive Your Patch

Two live RCE situations share one defeat mechanism: the patch closes the door but leaves the burglar holding a copied key — one via machine-key theft, one via an absent auto-updater.

Threat Briefing

CVE-2026-50522 is not a routine patch item. The flaw is unsafe deserialization on on-prem SharePoint, and it yields unauthenticated RCE. The operationally dangerous part comes after. A single request extracts the ASP.NET validationKey and decryptionKey, the keys that sign and encrypt ViewState and authentication tokens. Lift them once and an attacker forges trusted tokens against that server indefinitely. watchTowr has confirmed in-the-wild exploitation, and a public PoC is already circulating. Microsoft's July 2026 update closes the RCE. It does nothing about keys already gone.

7-Zip's XZ decompression heap overflow is the same lesson from a different angle. A malicious archive gets an attacker RCE. 7-Zip ships with no auto-update mechanism, which means the patch that exists never reaches endpoints unless someone pushes it. The fix is available. Delivery is the open question.


Attack Surface Analysis

DimensionSharePoint CVE-2026-505227-Zip XZ overflow
VectorUnsafe deserialization → unauth RCEMalicious archive → RCE
ExploitationActive, public PoC liveDisclosed, patch available
Why the patch isn't enoughStolen machine keys forge tokens after patchingNo auto-updater — patch never lands unmanaged
Closing moveRotate keys, restart IIS, hunt forged tokensManual push via SCCM/Intune

Both defeat a patch-centric SLA. On SharePoint, remediation is not complete until every internet-exposed instance has rotated its keys and been swept for web shells and forged tokens. On 7-Zip, remediation does not begin until endpoint tooling forces the version, because user self-update will not happen.


Defense Playbook

  1. Treat any internet-exposed SharePoint as presumed key-compromised: patch, rotate, restart, hunt, in that order.
  2. Enumerate 7-Zip installs, including unmanaged and developer machines, and push the patched build centrally.
Patching SharePoint without rotating the machine keys changes the locks after the burglar has already been handed a spare.

What to do

  1. Patch all on-prem SharePoint 2016/2019/Subscription Edition with the July 2026 update now, then rotate ASP.NET validationKey/decryptionKey, restart IIS, and hunt web shells and forged tokens on every internet-exposed instance.

  2. Push a manual 7-Zip update to every managed endpoint via SCCM/Intune this sprint and sweep for unmanaged installs.

Your AI Coding Fleet Just Became a Worm's Delivery Layer

SANDWORM_MODE didn't plant a backdoor — it weaponized the legitimate behavior of MCP integrations, which is precisely why your SCA and backdoor scanners will wave it through.

Threat Briefing

The novel mechanic here is the abuse of a legitimate feature. Rather than hiding a payload in build files, SANDWORM_MODE installs a rogue Model Context Protocol (MCP) server inside Claude Desktop, Cursor, VSCode and Windsurf, then instructs the AI assistant itself to quietly harvest credentials. Nothing in the dependency looks malicious to a signature scanner, because the theft is performed by a trusted local agent doing what MCP servers are designed to do — call tools and read context.

Propagation is where it earns its name. The worm uses stolen npm publish tokens, GitHub API tokens and SSH keys to push infected dependencies into downstream repos automatically, so a single compromised developer endpoint seeds the next wave through your CI/CD. Socket.dev found it spread across 19 malicious packages; CrowdStrike shipped 65% of the campaign's detections — meaning roughly a third of coverage depends on whatever else is in your stack.


Attack Surface Analysis

This makes MCP servers a first-class asset your inventory almost certainly doesn't track. The trust boundary isn't the package registry anymore — it's the AI agent's tool-call surface on every developer laptop and CI runner. Two failure modes compound: credential sprawl (dev accounts holding long-lived publish tokens) and unmonitored agent configs (no one audits which MCP servers are registered). Traditional SCA validates package contents; it does not validate agent behavior.

The dependency wasn't backdoored — the AI assistant reading it was told to steal, and your scanners only inspect the dependency.

Your Defense Playbook

  1. Bring MCP server registrations into the asset inventory and treat unreviewed ones as untrusted code execution.
  2. Shorten the life and scope of dev credentials — the worm's whole propagation model depends on long-lived publish tokens.

The smart move is to fold dev-fleet AI tooling under the same identity discipline you already apply to production service accounts: least privilege, rotation, and behavioral logging.

What to do

  1. Audit every developer endpoint and CI runner for unauthorized MCP server registrations in Claude Desktop, Cursor, VSCode and Windsurf this sprint, then revoke and rotate all npm publish, GitHub API and SSH credentials tied to dev accounts.

  2. Validate EDR detection coverage against SANDWORM_MODE IOCs across developer laptops and CI/CD now rather than assuming default signatures catch legitimate-looking MCP abuse.

The OAuth Gap That Lives Below Your Patch Queue

CVE-2026-59208 is a specific bug in n8n, but the design flaw it exposes — issuer checks that stop at redirect flows — is quietly present in any multi-tenant or agent system doing token exchange.

Threat Briefing

RFC 9207 added an issuer check built to stop redirect-flow OAuth mix-up attacks. CVE-2026-59208 documents where that check runs out: the protection was never extended to back-channel token exchange grants under RFC 8693, 7523, and 7522. The mechanism is specific. A token issued by one tenant can resolve to a same-named account in a different tenant, because the subject lookup is not scoped per issuer and keys are not partitioned by issuer.

This ranks above the individual n8n bug for a structural reason. Token exchange is how identity gets resolved in agent orchestration, MCP-style multi-issuer setups, and multi-tenant SaaS, which are also the systems being stood up on the shortest timelines. Any deployment in that set that trusts a subject claim without binding it to the issuing tenant inherits the same cross-tenant confusion.


Attack Surface Analysis

The day's other story rhymes with this one. ServiceNow publicly denies that its AI Platform unauthenticated sandbox-escape RCE is being exploited; threat-intel firm Defused reports otherwise, and which account holds has not been settled. The connecting logic is the same in both cases: a vendor's assurance, or an RFC's assumed coverage, is not a control. Where token exchange resolves identity, the working assumption should be that issuer scoping is absent until someone has verified it in the actual deployment.

System classWhere token exchange hidesWhat to verify
Agent orchestrationDelegated tool/API accessIssuer-scoped subject lookup
MCP multi-issuerCross-server identityPer-issuer key partitioning
Multi-tenant SaaSImpersonation/service tokensTenant-bound subject resolution
Front-channel issuer checks do not cover back-channel token exchange.

What to do

  1. Audit every OAuth/OIDC integration using token exchange grants (RFC 8693/7523/7522) — n8n, agent orchestration, MCP-style multi-issuer systems — for per-issuer key partitioning and issuer-scoped subject lookups this sprint.

  2. Deploy compensating controls (egress monitoring, sandbox-escape behavioral alerts, WAF rules) on any ServiceNow AI Platform instance and formally demand the vendor's evidence for its no-exploitation claim.

The bottom line

Stop treating the patch as the finish line — these live threats all persist past it, so make credential rotation and issuer-scoped identity verification the closing step of every remediation, and bring your dev fleet's AI tooling under the same least-privilege discipline you already enforce on production.