CVE-2026-54117 Overview
CVE-2026-54117 is a deserialization of untrusted data vulnerability [CWE-502] in Microsoft SQL Server. An authenticated attacker can send crafted serialized data over the network to trigger arbitrary code execution within the SQL Server process context. The flaw carries a CVSS 3.1 score of 8.8 and requires only low privileges with no user interaction. Successful exploitation compromises the confidentiality, integrity, and availability of the database service and the underlying host. Microsoft published the advisory on July 14, 2026, and the issue was last updated on July 15, 2026.
Critical Impact
An authorized attacker can execute arbitrary code on SQL Server over the network by supplying malicious serialized objects, enabling database compromise and potential lateral movement.
Affected Products
- Microsoft SQL Server (versions listed in the Microsoft Security Response Center advisory)
- SQL Server components processing serialized input from authenticated sessions
- Downstream applications and services relying on affected SQL Server instances
Discovery Timeline
- 2026-07-14 - CVE-2026-54117 published to NVD
- 2026-07-15 - Last updated in NVD database
Technical Details for CVE-2026-54117
Vulnerability Analysis
The vulnerability is an insecure deserialization flaw [CWE-502] in Microsoft SQL Server. SQL Server accepts serialized data from an authenticated client and reconstructs objects without sufficiently validating the type or content of the serialized stream. An attacker with valid SQL Server credentials can submit a crafted payload that causes the deserializer to instantiate attacker-controlled object graphs. During reconstruction, gadget chains within loaded assemblies execute code chosen by the attacker.
Exploitation runs in the SQL Server service context, which typically holds elevated privileges on the host. This allows the attacker to read or modify databases, pivot to linked servers, and interact with the operating system. The network-reachable attack surface and the low privilege requirement make the flaw practical in shared or multi-tenant database environments. EPSS currently estimates a 1.287% probability of exploitation activity.
Root Cause
The root cause is trust placed in serialized input received from authenticated clients. The deserialization routine reconstructs arbitrary .NET or SQL CLR object types without a strict allow-list, permitting gadget chains that execute code as a side effect of object construction. Microsoft's advisory tracks this weakness under CWE-502.
Attack Vector
The attack vector is network based. An attacker authenticates to the SQL Server instance with any low-privileged account, then submits a crafted serialized payload through an affected code path. No user interaction is required. The scope is unchanged, meaning code executes within the same security context as the SQL Server service account. Full technical details are restricted; consult the Microsoft Security Update CVE-2026-54117 advisory for vendor-supplied specifics.
No public proof-of-concept exploit code is currently available. This article does not include synthetic exploit code.
Detection Methods for CVE-2026-54117
Indicators of Compromise
- Unexpected child processes spawned by sqlservr.exe, such as cmd.exe, powershell.exe, or rundll32.exe.
- Anomalous outbound network connections originating from the SQL Server host to unfamiliar destinations.
- New or modified SQL CLR assemblies, extended stored procedures, or scheduled SQL Agent jobs created by low-privileged accounts.
- Failed and successful logins from unusual source addresses followed by large serialized payloads in SQL traffic.
Detection Strategies
- Monitor process lineage for SQL Server, flagging any non-standard child processes as high-severity events.
- Enable SQL Server audit for logins, role changes, CREATE ASSEMBLY, and sp_configure modifications, and forward events to a central analytics platform.
- Baseline typical query volume and payload sizes per account to detect abnormally large serialized inputs.
Monitoring Recommendations
- Ingest Windows Security, Sysmon, and SQL Server audit logs into a centralized detection pipeline for correlation.
- Alert on new SQL CLR assemblies marked UNSAFE or EXTERNAL_ACCESS, which are common post-exploitation persistence mechanisms.
- Track service account behavior and generate alerts when MSSQLSERVER initiates interactive shells, file writes to system directories, or credential access APIs.
How to Mitigate CVE-2026-54117
Immediate Actions Required
- Apply the security update referenced in the Microsoft Security Update CVE-2026-54117 advisory to all affected SQL Server instances.
- Inventory SQL Server deployments, including containerized and cloud-hosted instances, to confirm patch coverage.
- Rotate SQL Server service account credentials and review sysadmin membership for unauthorized additions.
- Restrict network exposure of SQL Server ports (default TCP 1433) to trusted management and application subnets only.
Patch Information
Microsoft has issued a security update addressing CVE-2026-54117. Refer to the Microsoft Security Update CVE-2026-54117 guidance for the specific KB articles and cumulative updates that apply to each supported SQL Server version. Install the update during the next available maintenance window and verify version numbers after deployment.
Workarounds
- Enforce the principle of least privilege by removing unnecessary logins and revoking elevated database roles from application accounts.
- Disable SQL CLR integration where it is not required using sp_configure 'clr enabled', 0 followed by RECONFIGURE.
- Place SQL Server behind a firewall or private endpoint and require VPN or bastion access for administrative connections.
- Enable Extended Protection for Authentication and enforce TLS on SQL Server endpoints to reduce credential theft risk.
# Disable SQL CLR integration as a defense-in-depth workaround
sqlcmd -S <server> -Q "EXEC sp_configure 'clr enabled', 0; RECONFIGURE;"
# Restrict SQL Server inbound access to trusted subnets (Windows Firewall example)
New-NetFirewallRule -DisplayName "Restrict MSSQL 1433" -Direction Inbound `
-Protocol TCP -LocalPort 1433 -RemoteAddress 10.0.0.0/24 -Action Allow
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

