Executive Summary
CVE-2026-32201 is a spoofing vulnerability in Microsoft SharePoint Server caused by improper input validation of HTTP request parameters. It was exploited as a zero-day in targeted attacks against organizations before Microsoft patched it on April 14, 2026 (Patch Tuesday). CISA has added it to the Known Exploited Vulnerabilities catalog with a federal remediation deadline of April 28, 2026 — all organizations running on-premises SharePoint should treat this as an emergency patch.
1. What Is This Vulnerability?
At its core, CVE-2026-32201 is an improper input validation flaw (CWE-20) in the request-handling layer of Microsoft SharePoint Server. SharePoint's list views, document metadata rendering, and resource-identifier endpoints accept user-supplied parameters — things like column filters, view IDs, or redirect targets — and in vulnerable versions these parameters are not sufficiently sanitized before being used in server-generated output or internal resource lookups.
An attacker can craft an HTTP request containing malformed or manipulated query strings, headers, or form fields. Because SharePoint trusts and reflects this input without proper validation, the attacker can make the server present spoofed content: fabricated document metadata, fake authentication prompts, or manipulated list views that appear to come from a legitimate SharePoint resource.
The flaw requires no authentication, no elevated privileges, and no victim interaction, which places its real-world exploitability far above what its CVSS 6.5 "Medium" rating suggests.
Attack Vector
Attacker → Crafted HTTP GET/POST request → SharePoint endpoint
(manipulated query string, header, or form field)
↓
Insufficient input validation in request handler
↓
Spoofed content reflected in server response
(fake auth prompt / tampered document view /
manipulated redirect)
A simplified example of the attack targeting a SharePoint list endpoint:
GET /sites/Finance/_layouts/15/listview.aspx?List={guid}&View=
../../../../_layouts/15/settings.aspx%3FSource%3Dhttp%3A%2F%2Fattacker.com
&Source=http://attacker.com/fakeprompt
Host: sharepoint.contoso.com
In vulnerable builds, the Source or View parameter is consumed without strict whitelist validation, allowing the server response to redirect users to attacker-controlled pages or render attacker-crafted content inside the legitimate SharePoint frame.
Real-World Impact
Active exploitation was documented in the wild before the April 14 patch. Observed attack patterns include:
- Credential harvesting: Victims browsing SharePoint are served spoofed login prompts that capture corporate credentials.
- Document tampering: Spoofed metadata presented alongside real documents misleads employees about file origin, confidentiality classification, or approval status.
- Phishing amplification: Legitimate SharePoint URLs containing crafted parameters are included in phishing emails, lending credibility to the attack because the domain is trusted.
- Foothold expansion: Once credentials are harvested, attackers pivot to email, Teams, and Azure AD environments.
SecurityWeek and BleepingComputer confirmed ongoing automated scanning for vulnerable SharePoint instances beginning before the public patch.
2. Who Is Affected?
| Product | Vulnerable Versions |
|---|---|
| SharePoint Server 2016 | All builds prior to the April 2026 cumulative update |
| SharePoint Server 2019 | All builds prior to the April 2026 cumulative update |
| SharePoint Subscription Edition | All builds prior to the April 2026 security update |
| SharePoint Online (Microsoft 365) | Not affected — Microsoft patched cloud infrastructure directly |
High-risk configurations:
- SharePoint servers directly internet-facing (no reverse proxy or WAF)
- Organizations with externally accessible SharePoint VPN portals
- Environments where SharePoint serves as an intranet portal with sensitive financial, HR, or compliance documents
- Any deployment not on a current patch cycle
Not affected:
- Microsoft 365 / SharePoint Online tenants
- SharePoint Server 2013 (end of life, no patch — but also a separate, older codebase)
3. How to Detect It (Testing)
Manual Testing Steps
-
Identify your SharePoint version: Navigate to
/_admin/FarmServers.aspx(Central Administration) or runGet-SPFarm | Select BuildVersionin SharePoint Management Shell. Compare against the April 2026 patch build numbers listed under "How to Fix It" below. -
Probe the
Sourceand redirect parameters: On a test SharePoint site (never production), send a request with an external URL in theSourceparameter:GET /sites/test/_layouts/15/AccessDenied.aspx?Source=http://external-test-site.comIf the server responds with an HTTP 302 redirect to the external domain or embeds external content in the response body, the endpoint is not validating redirect targets.
-
Check
Viewparameter handling: Attempt path traversal sequences in theViewparameter on list pages:GET /sites/test/_layouts/15/listview.aspx?List={valid-guid}&View=../../../A vulnerable server may return server errors or unexpected content instead of rejecting the malformed view identifier.
-
Review SharePoint ULS logs: Check Unified Logging Service logs at
%COMMONPROGRAMFILES%\Microsoft Shared\Web server extensions\16\LOGS\for unusual request patterns — repeated 400/500 errors on layout pages from the same source IP, or requests containing URL-encoded traversal sequences.
Automated Scanning
Tool: Nuclei (ProjectDiscovery)
# Install/update Nuclei templates
nuclei -update-templates
# Scan SharePoint instance for CVE-2026-32201
nuclei -u https://sharepoint.yourdomain.com \
-tags cve,sharepoint \
-severity medium,high,critical \
-o sharepoint-scan-results.txt
Expected output for a vulnerable target: A [CVE-2026-32201] finding with matched endpoint and parameter details.
Tool: Tenable Nessus
- Plugin ID for CVE-2026-32201 is available in the April 2026 plugin feed update.
- Run a credentialed scan using the "Microsoft SharePoint" plugin family to confirm patch level.
Tool: Microsoft Security Compliance Toolkit / MSCT
# Check installed patch via PowerShell on the SharePoint server
Get-HotFix | Where-Object {$_.HotFixID -like "KB*"} |
Sort-Object InstalledOn -Descending | Select-Object -First 20
Cross-reference the KB numbers against the April 2026 cumulative update for your SharePoint version (see Section 4).
Tool: Burp Suite (manual validation)
- Use the Repeater module to replay crafted requests with manipulated
Source,View, andListparameters. - Look for 302 redirects to external domains or unsanitized parameter reflection in the HTML response.
Code Review Checklist (for custom SharePoint add-ins / SPFx)
- Verify all
SPUtility.Redirect()calls validate the destination URL against an allowlist of internal domains - Check that
HttpRequest.QueryStringvalues used in page output are HTML-encoded withSPHttpUtility.HtmlEncode() - Confirm redirect targets are validated against
SPWebApplication.AlternateUrlsor an explicit internal domain list - Ensure no user-supplied
ViewGUIDs are used directly in file path constructions - Review any custom WebParts that accept URL parameters for reflected output
4. How to Fix It (Mitigation)
Step-by-Step Remediation
-
Apply the April 2026 Cumulative Update — This is the definitive fix. Download from the Microsoft Update Catalog:
-
Patch the SharePoint Language Packs — If language packs are installed, they must also be updated alongside the core server patch. Failing to patch language packs can leave servers in an inconsistent state.
-
Run the PSConfig Wizard after patch installation to propagate the update across the farm:
# Run on every server in the SharePoint farm PSConfig.exe -cmd upgrade -inplace b2b -wait -cmd applicationcontent -install -cmd installfeatures -cmd secureresources -cmd services -installOr via the SharePoint Products Configuration Wizard GUI.
-
Restart IIS and SharePoint services after PSConfig completes:
iisreset /noforce net stop SPTimerV4 && net start SPTimerV4 -
Verify patch installation by confirming the farm build version:
(Get-SPFarm).BuildVersion # Expected: 16.0.17xxx.xxxxx or higher (confirm against Microsoft's April 2026 release notes) -
Test core SharePoint functionality — run a quick smoke test on document libraries, list views, and authentication to confirm no regressions.
Immediate Workarounds (If Patching Is Delayed)
If you cannot apply the patch immediately, apply these compensating controls:
WAF Rule — Block external redirects on SharePoint layout pages:
# Nginx (reverse proxy in front of SharePoint)
location ~* /_layouts/ {
# Block Source parameter pointing to external domains
if ($arg_source ~* "^https?://(?!sharepoint\.yourdomain\.com)") {
return 403;
}
}
# Apache mod_rewrite
RewriteCond %{QUERY_STRING} [Ss]ource=https?://(?!sharepoint\.yourdomain\.com) [NC]
RewriteRule ^/_layouts/ - [F,L]
Restrict external access — If SharePoint does not need to be publicly accessible, place it behind a VPN or restrict access to internal IP ranges at the firewall level immediately.
Configuration Hardening
Enable SharePoint's built-in HTTP referrer validation:
# Enforce referrer header validation to block cross-site request forgery
$webApp = Get-SPWebApplication "https://sharepoint.yourdomain.com"
$webApp.HttpThrottleSettings.PerformThrottle = $true
$webApp.Update()
Restrict allowed redirect domains via web.config (add to <appSettings> in SharePoint web.config):
<add key="AllowedRedirectDomains" value="sharepoint.yourdomain.com,intranet.yourdomain.com" />
5. How to Test the Fix (Validation)
Regression Test Scenarios
- Scenario A: Apply the patch → repeat the
Source=http://external-site.comtest from Section 3. The server should now return a 400 Bad Request or display an "Invalid source URL" error — not a redirect. - Scenario B: Verify legitimate SharePoint navigation still works. A user clicking "Open in new tab" or using Back-to-Site navigation should redirect correctly to internal SharePoint URLs.
- Scenario C: Confirm document library views, list filtering, and page rendering are unaffected by the patch.
Security Test Cases
Test Case 1: External redirect blocked
- Precondition: April 2026 patch applied, PSConfig run
- Steps:
GET /_layouts/15/AccessDenied.aspx?Source=http://evil.example.com - Expected Result: HTTP 400 or sanitized error page; no redirect to external domain
Test Case 2: Traversal in View parameter rejected
- Precondition: Patch applied
- Steps:
GET /_layouts/15/listview.aspx?List={guid}&View=../../../../etc/passwd - Expected Result: HTTP 400 or SharePoint "List not found" error; no path traversal content
Test Case 3: Legitimate list view still functions
- Precondition: Patch applied
- Steps: Navigate to a SharePoint list with a valid view GUID
- Expected Result: List renders normally
Automated Post-Patch Validation
# Quick PowerShell validation script — run from a workstation with SharePoint access
$baseUrl = "https://sharepoint.yourdomain.com"
$testEndpoint = "$baseUrl/_layouts/15/AccessDenied.aspx?Source=http://external-redirect-test.com"
$response = Invoke-WebRequest -Uri $testEndpoint -MaximumRedirection 0 -ErrorAction SilentlyContinue
if ($response.StatusCode -eq 302 -and $response.Headers.Location -match "external-redirect-test") {
Write-Host "⚠️ VULNERABLE: Server still redirects to external domain" -ForegroundColor Red
} else {
Write-Host "✅ PATCHED: External redirect blocked (Status: $($response.StatusCode))" -ForegroundColor Green
}
6. Prevention & Hardening
Best Practices
- Maintain a regular SharePoint patch cadence: Apply cumulative updates monthly, aligned with Patch Tuesday. On-premises SharePoint drifts rapidly — even one skipped update cycle can leave critical gaps.
- Retire end-of-life versions: SharePoint 2016 reaches end of mainstream support in 2026. Begin planning migration to Subscription Edition or SharePoint Online.
- Adopt a Zero Trust posture for SharePoint: Do not expose SharePoint directly to the internet. Place it behind an Azure Application Proxy, reverse proxy, or require VPN access for remote workers.
- Enforce least-privilege site permissions: Limit who can access sensitive document libraries. A spoofing attack is significantly more damaging when the attacker can impersonate a user with broad access.
- Enable Microsoft Entra ID Conditional Access for SharePoint authentication — require MFA for all access, especially from external networks.
Monitoring & Detection
Watch for these indicators of active exploitation in SharePoint ULS logs and web server access logs:
# Suspicious patterns to alert on (SIEM/log analytics query — Sentinel KQL example)
W3CIISLog
| where csUriStem contains "/_layouts/"
| where csUriQuery contains "Source=http" and csUriQuery !contains "yourdomain.com"
| where csUriQuery contains "../" or csUriQuery contains "%2F%2E%2E"
| summarize count() by cIp, csUriStem, bin(TimeGenerated, 5m)
| where count_ > 5
Additionally:
- Alert on high volumes of 400/403 errors from a single source IP against
/_layouts/endpoints - Monitor for unusual outbound HTTP redirects from SharePoint servers (egress filtering)
- Enable SharePoint audit logging at the site collection level:
Site Settings → Site Collection Audit Settings → Track: Opening or downloading documents, Moving or copying items
Regular Assessment Practices
- Monthly: Verify SharePoint build version matches the latest cumulative update.
- Quarterly: Run a credentialed Nessus or Qualys scan against all SharePoint servers.
- Annually: Commission an external penetration test specifically covering SharePoint web application attack surface (OWASP Top 10 + SharePoint-specific vectors).
References
- CVE Entry (NVD): CVE-2026-32201 Detail — NIST NVD
- Microsoft MSRC Advisory: Microsoft Security Response Center
- CISA KEV Catalog: CISA Known Exploited Vulnerabilities — CVE-2026-32201
- Tenable Analysis: Microsoft's April 2026 Patch Tuesday Addresses 163 CVEs
- BleepingComputer Writeup: Microsoft April 2026 Patch Tuesday — 167 flaws, 2 zero-days
- SecurityWeek Coverage: Microsoft Patches Exploited SharePoint Zero-Day and 160 Other Vulnerabilities
- Security Affairs: April 2026 Patch Tuesday fixed actively exploited SharePoint zero-day
- Patch Downloads: Microsoft Update Catalog