CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-20963

CVE-2026-20963: Remote Code Execution via Insecure Deserialization in Microsoft SharePoint

Alon Barad
Alon Barad
Software Engineer

Mar 19, 2026·6 min read·604 visits

Executive Summary (TL;DR)

Authenticated RCE in SharePoint Server via insecure deserialization. Actively exploited and listed in CISA KEV. Requires immediate patching.

CVE-2026-20963 is a critical remote code execution (RCE) vulnerability in Microsoft SharePoint Server, caused by the unsafe deserialization of untrusted data (CWE-502). An authenticated attacker with standard user privileges can exploit this flaw to execute arbitrary code in the context of the SharePoint service.

Vulnerability Overview

CVE-2026-20963 is a remote code execution vulnerability in Microsoft SharePoint Server. The flaw resides in the handling of serialized objects within ASP.NET ViewState and other serialized data streams utilized by SharePoint application pages. These pages are typically located under the /_layouts/ directory of the application server. The vulnerability is classified as CWE-502, Deserialization of Untrusted Data.

An attacker with standard user privileges can exploit this vulnerability by submitting a crafted request containing a malicious serialized object. When the SharePoint server processes this request, the application reconstructs the object graph without verifying the object types. This reconstruction process triggers the execution of embedded methods within the deserialized objects. The resulting code execution occurs within the security context of the SharePoint web application process.

The vulnerability exposes affected servers to complete system compromise if the service account holds elevated privileges. This vulnerability was added to the CISA Known Exploited Vulnerabilities catalog on March 18, 2026. The inclusion indicates active exploitation by threat actors in real-world environments. Organizations must prioritize applying the official Microsoft updates to mitigate this risk.

Root Cause Analysis

The root cause of CVE-2026-20963 is the absence of adequate type validation during the deserialization of user-supplied data. SharePoint relies heavily on serialization to maintain state across HTTP requests, frequently utilizing mechanisms like ASP.NET ViewState. When a client interacts with the server, state data is serialized, sent to the client, and returned in subsequent requests.

The vulnerability manifests when the server-side deserialization logic processes this incoming data using unsafe formatters. Formatters such as BinaryFormatter or ObjectStateFormatter are known to be dangerous if applied to untrusted data without a stringent type-filtering surrogate. Without these filters, the formatter will instantiate any class available in the application's application domain if specified in the serialized stream.

Attackers construct specific gadget chains to exploit this behavior. A gadget chain is a sequence of classes and methods that, when instantiated and invoked during deserialization, execute arbitrary commands. Tools such as Ysoserial.net generate these payloads by leveraging classes already present in the .NET framework or SharePoint's internal libraries.

Code Analysis and Execution Flow

The vulnerability exists in the routine responsible for parsing state parameters from HTTP POST requests. The vulnerable implementation reads a Base64-encoded string from the request and passes it directly to an unconfigured deserializer. The application implicitly trusts the incoming data, allowing an attacker to specify arbitrary types in the payload.

// Vulnerable Implementation Pattern
protected override void LoadViewState(object savedState) {
    string base64State = Request.Params["__VIEWSTATE"];
    ObjectStateFormatter formatter = new ObjectStateFormatter();
    // Unsafe deserialization occurs here
    object state = formatter.Deserialize(base64State);
    base.LoadViewState(state);
}

The patched implementation introduces cryptographic integrity checks or utilizes strict type bounding to verify the origin and composition of the serialized data before deserialization occurs. Microsoft typically addresses these flaws by enforcing strict MAC validation during the ViewState parsing phase. This fix ensures that modified or externally generated serialized objects are rejected before the deserialization engine processes the type graph.

// Patched Implementation Pattern
protected override void LoadViewState(object savedState) {
    string base64State = Request.Params["__VIEWSTATE"];
    // Ensure MAC validation is strictly enforced
    if (!VerifyMac(base64State)) {
        throw new CryptographicException("Invalid ViewState MAC");
    }
    ObjectStateFormatter formatter = new ObjectStateFormatter();
    // Deserialization only proceeds if integrity is cryptographically verified
    object state = formatter.Deserialize(base64State);
    base.LoadViewState(state);
}

The following diagram illustrates the differing outcomes between the vulnerable and patched validation paths when processing an incoming POST request containing a deserialization payload.

Exploitation Methodology

Exploitation requires the attacker to hold standard user privileges on the target SharePoint site. This prerequisite aligns with the CVSS Privileges Required metric of Low (PR:L). The attacker authenticates to the application to obtain a valid session and access the vulnerable endpoints.

The attacker navigates to an application page under the /_layouts/ directory that processes serialized state data. They capture a legitimate request to this endpoint to map the expected parameters and application state. Using a tool like Ysoserial.net, the attacker generates a serialized payload containing a gadget chain designed to execute a specific operating system command.

The attacker base64-encodes the payload and embeds it into the __VIEWSTATE parameter or a vulnerable custom parameter within a POST request. The attacker submits this manipulated request to the target server. The server processes the request, deserializes the payload, and triggers the gadget chain execution.

Impact Assessment

Successful exploitation results in remote code execution on the target SharePoint server. The attacker gains the ability to execute arbitrary commands within the security context of the SharePoint application pool process. This process is typically w3wp.exe running as the SharePoint service account, which may possess extensive local network permissions.

The impact spans confidentiality, integrity, and availability, resulting in a CVSS Base Score of 8.8. The attacker obtains full read access to sensitive data stored on the server or accessible via the compromised service account. They can modify system files, alter SharePoint configurations, or disrupt the service entirely.

Threat intelligence indicates this vulnerability is actively exploited in the wild. Historically, actors associated with ToolShell campaigns have utilized similar SharePoint deserialization flaws. These vulnerabilities are frequently leveraged to establish initial network footholds and facilitate subsequent lateral movement into deeper infrastructure segments.

Remediation and Mitigation

The primary remediation strategy is the immediate application of the official security updates provided by Microsoft. Administrators managing Microsoft SharePoint Enterprise Server 2016 must install update KB5002828 to reach version 16.0.5535.1001 or later. Organizations running Microsoft SharePoint Server 2019 are required to deploy update KB5002825 to upgrade to version 16.0.10417.20083 or later.

Environments utilizing Microsoft SharePoint Server Subscription Edition must apply the corresponding update to achieve version 16.0.19127.20442. Applying these patches modifies the deserialization routines to safely handle user-supplied state data. CISA has mandated that all federal civilian executive branch agencies apply these updates by March 21, 2026.

In situations where immediate patching is unfeasible, administrators should enforce the principle of least privilege for the SharePoint service accounts. Network segmentation limits the potential for lateral movement following a successful compromise. Furthermore, security teams can deploy Web Application Firewall (WAF) rules designed to detect and block common .NET deserialization payload signatures within HTTP POST requests.

Official Patches

MicrosoftMSRC Advisory for CVE-2026-20963

Technical Appendix

CVSS Score
8.8/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
EPSS Probability
1.63%
Top 99% most exploited

Affected Systems

Microsoft SharePoint Enterprise Server 2016Microsoft SharePoint Server 2019Microsoft SharePoint Server Subscription Edition

Affected Versions Detail

Product
Affected Versions
Fixed Version
Microsoft SharePoint Enterprise Server 2016
Microsoft
16.0.0 <= x < 16.0.5535.100116.0.5535.1001
Microsoft SharePoint Server 2019
Microsoft
16.0.0 <= x < 16.0.10417.2008316.0.10417.20083
Microsoft SharePoint Server Subscription Edition
Microsoft
16.0.0 <= x < 16.0.19127.2044216.0.19127.20442
AttributeDetail
CWE IDCWE-502
Attack VectorNetwork
CVSS Base Score8.8
EPSS Score0.01629
Exploit StatusActive Exploitation
KEV StatusListed

MITRE ATT&CK Mapping

T1059Command and Scripting Interpreter
Execution
T1190Exploit Public-Facing Application
Initial Access
CWE-502
Deserialization of Untrusted Data

The application deserializes untrusted data without sufficiently verifying that the resulting data will be valid.

Vulnerability Timeline

Vulnerability disclosed by Microsoft and security updates released.
2026-01-13
Zero Day Initiative (ZDI) and other researchers provide initial summaries.
2026-01-13
Added to CISA Known Exploited Vulnerabilities (KEV) catalog.
2026-03-18
CISA-mandated remediation deadline for federal agencies.
2026-03-21

References & Sources

  • [1]MSRC Advisory
  • [2]CISA KEV Catalog
  • [3]GitHub Advisory (GHSA-5vr8-9cf6-r7px)
  • [4]SentinelOne Analysis
  • [5]Zero Day Initiative Blog
  • [6]Qualys Security Update

More Reports

•about 4 hours ago•CVE-2026-93363
4.3

CVE-2026-93363: Improper Access Control in Payload CMS Storage Upload Route

Payload CMS contains a missing authorization vulnerability (CWE-862) in its client-side upload instructions endpoint and the `@payloadcms/storage-vercel-blob` storage adapter. Two distinct logic defects allow authenticated users lacking collection-level `create` or `update` permissions to generate signed upload tokens and upload arbitrary files directly to external cloud storage.

Alon Barad
Alon Barad
4 views•9 min read
•about 5 hours ago•CVE-2026-55098
6.5

CVE-2026-55098: Cross-Database Authorization Bypass via DuckDB Table-Valued I/O Functions in Basekick-Labs Arc

CVE-2026-55098 (GHSA-93cm-2v4m-c56c) is an authorization bypass and sensitive information disclosure vulnerability in Basekick-Labs Arc prior to version 26.06.2. The flaw stems from an incomplete remediation of CVE-2026-47735, which failed to restrict the full suite of DuckDB table-valued filesystem I/O functions and quoted-identifier invocations. Because Arc's query parser ignores function calls during table reference extraction, authenticated users with minimal or empty permissions can invoke functions like parquet_scan(), glob(), and read_blob() to read, enumerate, and extract telemetry data across all tenant databases residing within the shared local storage root.

Alon Barad
Alon Barad
4 views•10 min read
•about 6 hours ago•CVE-2026-113787
6.1

CVE-2026-113787: Stored Cross-Site Scripting via Unescaped Style Attributes in odf-kit

CVE-2026-113787 is a stored Cross-Site Scripting (XSS) and HTML injection vulnerability affecting the odf-kit npm package from version 0.6.0 prior to 0.14.2. The HTML conversion engines (odtToHtml and odsToHtml) interpolate document-controlled styling and image attributes directly into inline style and src attributes without escaping double-quote characters. A remote attacker can supply a crafted .odt or .ods document to break out of HTML attribute boundaries and execute arbitrary JavaScript in the context of any web application rendering the converted HTML.

Alon Barad
Alon Barad
4 views•11 min read
•about 20 hours ago•GHSA-M3QR-FVP4-78XJ
5.3

GHSA-m3qr-fvp4-78xj: Authentication Bypass and Log Disclosure in Basekick Labs Arc

GHSA-m3qr-fvp4-78xj is an authentication bypass and information disclosure vulnerability in Arc, an open-source, SQL-native time-series database developed by Basekick Labs and written in Go. Due to an improper route registration sequence within the Go Fiber HTTP server initialization pipeline, the application registered the /api/v1/logs endpoint prior to mounting the global authentication middleware. Because Fiber evaluates route handlers in strict declaration order and terminates request traversal when a handler returns without invoking c.Next(), unauthenticated remote callers can query the logs endpoint and retrieve up to 10,000 buffered operational log entries even when authentication is enabled.

Alon Barad
Alon Barad
8 views•8 min read
•about 21 hours ago•CVE-2026-62848
7.3

CVE-2026-62848: Local Arbitrary Code Execution via Unsafe Deserialization in Metalama Named Pipe IPC

CVE-2026-62848 (GHSA-h26j-4vp7-x9w2) is a high-severity unsafe deserialization vulnerability in Metalama, a Roslyn-based meta-programming and code generation framework for C#. The flaw resides in the inter-process communication (IPC) channel used by Metalama within Microsoft Visual Studio. Across versions 2023.0 through 2026.1.18, the framework utilized either Newtonsoft.Json with TypeNameHandling.All or MessagePack with TypelessObjectResolver over local Windows named pipes without enforcing a strict type allow-list. Because the named pipes use predictable identifiers, any local process running under the same Windows user session can connect to the endpoint and transmit crafted serialized payloads, resulting in arbitrary Common Language Runtime (CLR) type instantiation and code execution within the host Visual Studio process.

Alon Barad
Alon Barad
10 views•9 min read
•about 22 hours ago•GHSA-9PPR-WFW9-XVR2
5.3

GHSA-9ppr-wfw9-xvr2: DNS Cache TTL Manipulation Failure in Netfoil via Go Value-Copy Range Iteration

A logic flaw in github.com/tinfoil-factory/netfoil versions 0.3.0 through 0.6.0 prevents the DNS proxy from properly decrementing Time-To-Live (TTL) values on cached DNS responses and enforcing configured maximum TTL limits. Due to an idiomatic Go programming mistake where a range loop modifies value copies of slice elements rather than the underlying slice array, netfoil continually serves DNS answers with their original static TTLs. This condition causes downstream clients and resolvers to retain stale DNS records beyond their intended expiration window and bypasses local MaxTTL administrative policies.

Alon Barad
Alon Barad
8 views•10 min read