← Back to Feed CACHED · 2026-10-07 15:03:00 · CACHE_KEY CVE-2026-63520
CVE-2026-63520 · CWE-20 · Disclosed 2026-08-11

Microsoft SharePoint Server Business Connectivity Services Unsafe .NET Type Instantiation Remote Code Execution

ASSESSED — NOISGATE
Vendor
—
—
—
Reassessed
—
—
—
Verdict: —
Do you agree?
01 · The Real Story

Someone left the vault door unlatched, and now there's a published lockpicking guide circulating on the internet

CVE-2026-63520 is an unsafe .NET type instantiation flaw in SharePoint's Business Connectivity Services (BCS). By uploading a crafted Business Data Catalog Metadata (BDCM) XML file that binds System.Web.UI.LosFormatter.Deserialize as a Finder method, an attacker triggers .NET deserialization of an embedded gadget chain (e.g., TypeConfuseDelegate) and executes arbitrary commands as the SharePoint service account. Affected versions include SharePoint Server Subscription Edition (before 16.0.19725.20522), SharePoint Server 2019 (before 16.0.10417.20198), and SharePoint Enterprise Server 2016 (before 16.0.5565.1001). Patched August 11, 2026 via KB5002893, KB5002894, and KB5002905.

Microsoft rates this CVE at 8.1 HIGH with AC:H because the RCE alone notionally requires prior authentication. That rating is dangerously misleading. In practice, CVE-2026-63520 chains seamlessly with CVE-2026-55040 — a CVSS 9.1 JWT authentication bypass patched a month earlier (July 14, 2026) and already in CISA KEV with confirmed active exploitation. Together they yield a fully unauthenticated, zero-click RCE chain against any internet-reachable SharePoint farm. VulnCheck published a complete weaponized PoC on August 24, and Defused observed in-the-wild chaining the next day. The vendor's HIGH label evaluates this CVE in isolation; reality is that any unpatched SharePoint server reachable from the internet is one HTTP request sequence away from full compromise. noisgate upgrades this to CRITICAL.

"Weaponized unauthenticated RCE chain against SharePoint on-prem is being exploited now — patch immediately."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Target discovery

The attacker identifies internet-exposed SharePoint Server instances using Shodan, Censys, or FOFA dorking (http.title:"SharePoint" or http.component:"Microsoft SharePoint"). Censys reports ~329,000 SharePoint instances globally, of which ~21,000 on-prem servers expose version strings and ~8,500 are confirmed internet-facing after honeypot deduplication. The attacker fingerprints the version header to confirm the target runs a pre-patch build.
Conditions required:
  • Target SharePoint Server is internet-facing or attacker has network access
  • Target has not applied August 2026 cumulative update
Where this breaks in practice:
  • Most large enterprises have migrated to SharePoint Online (M365), which is not affected
  • Many on-prem farms sit behind VPN or reverse-proxy without public exposure
Detection/coverage: Shodan/Censys/FOFA queries are passive; no detection at this stage. Defenders can proactively audit their own exposure via shodan search http.title:SharePoint org:<yourorg>.
STEP 02

JWT authentication bypass (CVE-2026-55040)

The attacker forges a nested JWT token exploiting four chained weaknesses in SPJsonWebSecurityTokenHandlerV2: (1) RequireSignedTokens is false, accepting alg:none; (2) the inner actor token's signing key is resolved from an attacker-supplied x5t thumbprint without signature verification; (3) issuer validation accepts SharePoint's own STS certificate; (4) the final signature check only requires a non-empty value. This grants unauthenticated admin-level access to the SharePoint site. Weaponized tool: VulnCheck PoC (Jonathan Peterson, August 24, 2026).
Conditions required:
  • CVE-2026-55040 is unpatched (July 2026 patch missing)
  • SharePoint's default JWT handling configuration is intact
Where this breaks in practice:
  • CVE-2026-55040 was patched July 14, 2026 — organizations with a 30-day patch cycle should already be protected
  • CISA KEV listing (August 18) mandated federal agency remediation by August 21
Detection/coverage: Rapid7 InsightVM authenticated check available since July 15, 2026. WAF rules detecting alg:none or malformed JWT in SharePoint API requests. IDS signatures for anomalous /vti_bin/ or /_api/ token patterns.
STEP 03

BCS metadata upload and external list registration

With forged admin credentials, the attacker creates a document library of type 101 (BusinessDataMetadataCatalog), uploads a crafted BDCM XML file defining a LobSystem of type DotNetAssembly with System.Web.UI.LosFormatter as the class, binding its Deserialize method to a Finder. The attacker then calls the ProcessQuery endpoint to register an external list pointing to the malicious BDC model. Weaponized tool: VulnCheck PoC chain, 4 sequential HTTP requests.
Conditions required:
  • Admin-level SharePoint access (provided by step 2)
  • Business Connectivity Services is available (enabled by default in all SharePoint on-prem editions)
Where this breaks in practice:
  • BCS can be disabled via Central Administration if the organization does not use external data connections, but this is almost never done proactively
  • The four-request sequence is distinctive and could be flagged by application-layer monitoring
Detection/coverage: SharePoint ULS logs will record the document library creation and BDCM upload. SIEM correlation on rapid ProcessQuery calls following library creation is possible but requires custom rules.
STEP 04

Deserialization triggers arbitrary code execution

When the attacker queries the registered external list, SharePoint's DotNetTypeReflector instantiates LosFormatter and invokes Deserialize on the base64-encoded DefaultValue — a TypeConfuseDelegate gadget chain that spawns an arbitrary OS command (e.g., cmd.exe /c <payload>). Code executes as the SharePoint service account, which is typically a domain service account with dbcreator and securityadmin SQL Server roles and often GenericAll on SharePoint-related OUs. Weaponized tool: ysoserial.net TypeConfuseDelegate gadget.
Conditions required:
  • Steps 1-3 completed successfully
  • Target has not applied KB5002893/KB5002894/KB5002905 (August 2026 patch)
Where this breaks in practice:
  • EDR on the SharePoint server may catch the child process spawned by w3wp.exe
  • Application control (AppLocker/WDAC) could block unexpected binaries launched by the service account
Detection/coverage: EDR/XDR should alert on w3wp.exe spawning cmd.exe or powershell.exe. Microsoft Defender for Endpoint has behavioral detections for .NET deserialization abuse. Rapid7 InsightVM authenticated check available since August 12, 2026.
03 · Compensating Control

1
CRITICAL 9.4→HIGH 7.2
SEVERITY REDUCED
Apply July 2026 SharePoint patch (CVE-2026-55040 fix) immediately — The RCE chain requires the JWT auth bypass as its entry point. Applying KB5002887/equivalent July CU for CVE-2026-55040 breaks the unauthenticated attack vector entirely, even if CVE-2026-63520 remains unpatched. This is the single highest-ROI action. Per noisgate mitigation SLA for CRITICAL: deploy within 3 days. Given active exploitation, deploy within hours.
2
CRITICAL 9.4→LOW 2.0
SEVERITY REDUCED
Apply August 2026 SharePoint cumulative update (CVE-2026-63520 fix) — KB5002893 (Subscription Edition), KB5002894/5002896 (2019), KB5002905/5002906 (2016) patch the deserialization flaw in DotNetTypeReflector.cs by adding ValidateSafeBcsType allowlist enforcement. This eliminates the RCE vector even if an auth bypass is later discovered. Per noisgate mitigation SLA for CRITICAL: deploy within 3 days.
3
CRITICAL 9.4→HIGH 6.5
SEVERITY REDUCED
Remove SharePoint from direct internet exposure — Place SharePoint behind a VPN, Azure AD Application Proxy, or reverse proxy with pre-authentication. This eliminates the unauthenticated remote attack vector for external adversaries. The chain still works from inside the network, but the attacker now needs a prior foothold. Deploy within 3 days for any internet-facing farm.
4
CRITICAL 9.4→HIGH 7.0
SEVERITY REDUCED
Disable Business Connectivity Services if unused — In SharePoint Central Administration → Manage Services on Server, stop the Business Data Connectivity Service. This removes the attack surface for CVE-2026-63520's deserialization vector. Most organizations do not actively use BCS for external data connections. Verify with business stakeholders before disabling. This does not mitigate CVE-2026-55040 (the auth bypass still works for data theft).
5
CRITICAL 9.4→HIGH 7.5
SEVERITY REDUCED
Deploy EDR behavioral rules on SharePoint servers — Configure EDR (Defender for Endpoint, CrowdStrike, SentinelOne) to alert and block w3wp.exe spawning cmd.exe, powershell.exe, certutil.exe, or other LOLBins. This catches the post-deserialization execution stage. Not a substitute for patching — sophisticated attackers can use in-memory-only gadgets — but raises the bar significantly.
What doesn't work
  • Network-layer firewalling of specific ports does not help — the entire chain runs over standard HTTPS (TCP 443) using legitimate SharePoint API endpoints.
  • SharePoint's built-in auditing does not flag the JWT bypass or BCS metadata upload as security events by default; you need custom ULS log correlation to detect the attack sequence.
  • WAF generic SQL injection / XSS rules are irrelevant — the payload is a valid SharePoint API call with a crafted JWT and XML body that conforms to the BDCM schema.
  • Restricting SharePoint site permissions does not help — CVE-2026-55040 bypasses authentication entirely, so permission assignments are never evaluated.
04 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationActive. CVE-2026-55040 (chain prerequisite) added to CISA KEV on August 18, 2026. Defused researchers observed full chain exploitation (JWT bypass → BCS RCE) against honeypots on August 25, 2026. Singapore CSA issued alert AL-2026-113 on August 28. KEVIntel documented 12 exploitation attempts from IPs in Hong Kong, Japan, Netherlands, Taiwan, and the US.
Proof-of-concept availabilityPublic and weaponized. Stephen Fewer (Rapid7) published the CVE-2026-55040 PoC on August 11. Jonathan Peterson (VulnCheck) published the complete RCE chain PoC on August 24, 2026. EIP links 2 GitHub repositories with working exploits. The chain requires only 4 HTTP requests. No nuclei template found as of October 2026.
EPSS score0.00956 (≈96th percentile) — estimated ~1% probability of exploitation in the next 30 days. This score lags behind observed reality; active exploitation is already confirmed.
CVSS vector interpretationCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H — Network-attackable, no privileges or interaction needed, but AC:H reflects the chain dependency. In practice, AC:H is a fiction: the chain partner PoC is public and trivial to execute.
Affected versionsSharePoint Server Subscription Edition (all builds before 16.0.19725.20522), SharePoint Server 2019 (before 16.0.10417.20198), SharePoint Enterprise Server 2016 (before 16.0.5565.1001). SharePoint Online / M365 is not affected.
Fixed versions & KBsSubscription Edition: KB5002893 (16.0.19725.20522) · 2019: KB5002894 + KB5002896 (16.0.10417.20198) · 2016: KB5002905 + KB5002906 (16.0.5565.1001). Released August 11, 2026. CVE-2026-55040 fix: July 14, 2026.
Internet exposureCensys observes ~329,000 SharePoint instances globally; ~21,000 on-prem expose version strings; ~8,500 internet-facing after honeypot deduplication (Shadowserver/VulnCheck). Geographic concentration in North America and Western Europe.
Disclosure timelineEarly March 2026: Stephen Fewer discovers auth bypass during AI-assisted Pwn2Own Berlin prep (120 hrs agent runtime, 96 sessions). Two weeks later: RCE discovered. July 14: CVE-2026-55040 patched. August 11: CVE-2026-63520 patched and disclosed. August 24: full chain PoC published. August 25: in-the-wild chaining observed.
Researcher / orgStephen Fewer, Senior Principal Security Researcher, Rapid7 Labs (discovery, Pwn2Own Berlin 2026 entry). Jonathan Peterson, VulnCheck Initial Access Intelligence (weaponized chain PoC).

Sources.

  1. Rapid7 ETR: CVE-2026-63520 SharePoint RCE Disclosure
  2. VulnCheck: Exploiting SharePoint CVE-2026-55040 and CVE-2026-63520 RCE Chain
  3. BleepingComputer: Hackers Target SharePoint RCE Chain with PoC Exploit
  4. CISA KEV Catalog: CVE-2026-55040
  5. Censys Advisory: CVE-2026-55040 & CVE-2026-63520
  6. Singapore CSA Alert AL-2026-113
  7. Microsoft KB5002893: SharePoint Server Subscription Edition August 2026
  8. SecurityAffairs: SharePoint CVE-2026-55040 Under Attack
05 · The Call

Final Verdict
↑ UPGRADED to CRITICAL (9.4/10)

Why this verdict

  • Chain eliminates AC:H friction entirely. Microsoft's 8.1 score hinges on AC:H — the assumption that exploitation is complex because authentication is needed. CVE-2026-55040 provides trivial unauthenticated admin access with a 4-weakness JWT bypass, making the combined chain effectively AC:L. The PoC is public, weaponized, and requires only 4 HTTP requests.
  • Active exploitation confirmed with public tooling. The full RCE chain PoC was published by VulnCheck on August 24. Defused observed real-world exploitation the next day. CVE-2026-55040 is in CISA KEV (August 18). 12 exploitation attempts documented from 5 countries. This is not theoretical — adversaries are running this chain today.
  • Role multiplier: SharePoint on-prem is a high-value data repository in virtually every deployment. It holds corporate documents, financial data, legal records, HR files, and executive communications. The SharePoint service account typically runs as a domain service account with SQL Server dbcreator/securityadmin roles and often has broad AD permissions. Compromise of a SharePoint farm yields (a) mass data exfiltration of the document store, (b) credential harvesting from the SharePoint content database, and (c) a pivot platform for lateral movement toward domain controllers via the privileged service account. Blast radius: host → tenant → domain. While SharePoint is not in the canonical IdP/DC/hypervisor category, its deployment-role blast radius in a domain-joined enterprise is fleet-scale when the service account is leveraged. This floor-sets the verdict at HIGH even before accounting for active exploitation, and the confirmed in-the-wild activity pushes it to CRITICAL.
  • 8,500+ servers directly exposed. Unlike many enterprise vulns that require internal network access, thousands of SharePoint farms are directly internet-facing. The attacker needs no prior foothold, no phishing, no VPN compromise — just a URL.

Why not higher?

A 9.4 already reflects the worst realistic outcome. The score is not 10.0 because: (1) the chain requires *both* July and August patches to be missing — organizations that applied the July patch for CVE-2026-55040 are already protected against the unauthenticated vector; (2) SharePoint Online (the majority of the SharePoint installed base) is not affected, limiting the total vulnerable population; (3) the Scope remains Unchanged — the exploit does not inherently break out of the SharePoint service account's privilege boundary without additional post-exploitation.

Why not lower?

Downgrading below CRITICAL would require ignoring confirmed active exploitation, a public weaponized PoC, CISA KEV listing of the chain partner, and 8,500+ directly exposed targets. The chain is unauthenticated, zero-click, and reliable. The blast radius includes mass document exfiltration and potential domain compromise via the service account. Any organization running unpatched on-prem SharePoint with internet exposure is at immediate risk of compromise.

06 · Verification

Crowdsourced verification payload.

Run this script on each SharePoint server (front-end and application tier) as a local administrator or farm administrator. Invoke with: powershell -ExecutionPolicy Bypass -File .\Check-CVE-2026-63520.ps1. No external dependencies required. The script checks the installed SharePoint build number against the patched versions for all three product lines.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#Requires -RunAsAdministrator
<#
  Check-CVE-2026-63520.ps1
  Checks whether the local SharePoint Server is patched against CVE-2026-63520
  (Business Connectivity Services unsafe .NET type instantiation)
  and CVE-2026-55040 (JWT authentication bypass).

  Exit codes:
    0 = PATCHED
    1 = VULNERABLE
    2 = UNKNOWN (SharePoint not detected or version unreadable)
#>

$ErrorActionPreference = 'Stop'

try {
    # Load SharePoint snap-in if available
    if (-not (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue)) {
        Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
    }

    # Try to get build from SharePoint farm
    $farm = $null
    try { $farm = [Microsoft.SharePoint.Administration.SPFarm]::Local } catch {}

    $buildVersion = $null
    if ($farm) {
        $buildVersion = $farm.BuildVersion
    } else {
        # Fallback: read from registry
        $regPath = 'HKLM:\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\16.0'
        if (Test-Path $regPath) {
            $ver = (Get-ItemProperty $regPath -ErrorAction SilentlyContinue).Version
            if ($ver) { $buildVersion = [System.Version]$ver }
        }
    }

    if (-not $buildVersion) {
        Write-Host 'UNKNOWN - SharePoint Server not detected on this host.'
        exit 2
    }

    $v = [System.Version]$buildVersion
    Write-Host "Detected SharePoint build: $v"

    # Patched versions (August 2026 CU - CVE-2026-63520 fix)
    # Subscription Edition: 16.0.19725.20522
    # Server 2019:          16.0.10417.20198
    # Server 2016:          16.0.5565.1001

    $vulnerable = $false
    $product = 'Unknown'

    if ($v.Build -ge 17000) {
        # Subscription Edition (builds 17xxx+)
        $product = 'SharePoint Server Subscription Edition'
        $patchedAug = [System.Version]'16.0.19725.20522'
        if ($v -lt $patchedAug) { $vulnerable = $true }
    } elseif ($v.Build -ge 10000 -and $v.Build -lt 17000) {
        # Server 2019 (builds 10xxx)
        $product = 'SharePoint Server 2019'
        $patchedAug = [System.Version]'16.0.10417.20198'
        if ($v -lt $patchedAug) { $vulnerable = $true }
    } elseif ($v.Build -ge 4000 -and $v.Build -lt 10000) {
        # Server 2016 (builds 4xxx-5xxx)
        $product = 'SharePoint Server 2016'
        $patchedAug = [System.Version]'16.0.5565.1001'
        if ($v -lt $patchedAug) { $vulnerable = $true }
    } else {
        Write-Host "UNKNOWN - Unrecognized SharePoint build range: $v"
        exit 2
    }

    Write-Host "Product: $product"

    # Also check for CVE-2026-55040 (July 2026 patch) - chain prerequisite
    # If July patch is applied, the unauthenticated chain is broken
    $julyPatchApplied = $false
    $julyCU = switch -Wildcard ($product) {
        '*Subscription*' { [System.Version]'16.0.19527.20268' }
        '*2019*'         { [System.Version]'16.0.10416.20066' }
        '*2016*'         { [System.Version]'16.0.5563.1000' }
    }
    if ($v -ge $julyCU) { $julyPatchApplied = $true }

    if ($vulnerable) {
        Write-Host ''
        Write-Host '*** VULNERABLE to CVE-2026-63520 (BCS deserialization RCE) ***' -ForegroundColor Red
        if (-not $julyPatchApplied) {
            Write-Host '*** ALSO VULNERABLE to CVE-2026-55040 (JWT auth bypass) ***' -ForegroundColor Red
            Write-Host '*** FULL UNAUTHENTICATED RCE CHAIN IS EXPLOITABLE ***' -ForegroundColor Red
            Write-Host 'PRIORITY: CRITICAL - Patch IMMEDIATELY.' -ForegroundColor Red
        } else {
            Write-Host 'CVE-2026-55040 (JWT bypass) appears patched - unauthenticated chain is mitigated.' -ForegroundColor Yellow
            Write-Host 'Authenticated RCE via BCS remains possible. Apply August CU.' -ForegroundColor Yellow
        }
        Write-Host 'VULNERABLE'
        exit 1
    } else {
        Write-Host ''
        Write-Host 'PATCHED - August 2026 CU applied. CVE-2026-63520 is remediated.' -ForegroundColor Green
        Write-Host 'PATCHED'
        exit 0
    }
} catch {
    Write-Host "UNKNOWN - Error during check: $_"
    exit 2
}