CVE-2020-0688 — Microsoft Exchange Server Validation Key Remote Code Execution Vulnerability

CVE-2020-0688

Exchange Control Panel — Static Machine Key Enables Post-Auth Deserialization RCE, Mass-Scanned Within Days

What is Microsoft Exchange Server?

Exchange Server is Microsoft's on-premises enterprise email, calendaring, and contacts platform, deployed extensively in corporate and government environments. Because Exchange holds an organization's entire mail archive and is deeply integrated with Active Directory, an Exchange server is one of the highest-value targets in a corporate network — remote code execution on Exchange typically means full access to email data and a strong foothold for lateral movement into the broader domain.

Overview

CVE-2020-0688 is a remote code execution vulnerability in the Exchange Control Panel (ECP) component. Every Exchange Server installation is supposed to generate a unique cryptographic key pair (validationKey and decryptionKey in ECP's web.config) at install time, used to validate and decrypt serialized ViewState data submitted by the web interface. Due to a flaw in the setup process, Exchange installations instead shipped with the same static, publicly-known key values across installations. Because .NET's ViewState mechanism deserializes attacker-supplied data once it passes the validation/decryption check, an attacker who could produce validly-signed serialized payloads using the known static key could achieve arbitrary code execution on the underlying Exchange server as SYSTEM.

The catch that keeps its severity to "post-auth" rather than fully unauthenticated is that the ECP endpoint requires the attacker to already have valid mailbox credentials — but any valid Exchange account (even a low-privileged one obtained through phishing or credential stuffing) is enough to trigger full server compromise.

Technical Details

The root cause (CWE-287, Improper Authentication, closely tied to insecure deserialization) is that Exchange failed to randomize the machine keys used to sign and encrypt .NET ViewState. Because these keys were static and eventually became publicly known, any authenticated request to /ecp/ could be crafted with a malicious serialized __VIEWSTATE payload that Exchange would trust as legitimate, decrypt, and deserialize — leading directly to code execution in the context of the Exchange service account. This made exploitation a single authenticated HTTP request once the malicious ViewState payload was constructed, requiring low privileges and no user interaction (AV:N/AC:L/PR:L/UI:N), which is why it scored 8.8.

Discovery

Publicly reported to Microsoft through Trend Micro's Zero Day Initiative (ZDI) program; researcher Simon Zuckerbraun of ZDI is credited with the disclosure that led to Microsoft's February 2020 patch.

Exploitation Context

Within roughly two weeks of the patch, independent researchers published detailed technical breakdowns and working exploit code, and multiple security firms — including Rapid7 and Volexity — observed mass internet scanning for vulnerable Exchange Control Panel endpoints almost immediately afterward. CISA's KEV listing confirms it has been used in the wild, and the frontmatter marks confirmed ransomware association, consistent with Exchange RCE being a favored initial-access and lateral-movement vector for both espionage actors and ransomware affiliates given how much control an Exchange compromise grants over an organization's mail and directory infrastructure.

Remediation

  1. Apply the February 2020 Exchange cumulative update (or any later CU) immediately — this regenerates unique validation/decryption keys on affected servers.
  2. Rotate Exchange account credentials broadly, since any compromised mailbox account is sufficient to trigger this exploit.
  3. Restrict and monitor access to /ecp/ from untrusted networks; require VPN or additional authentication layers for administrative interfaces.
  4. Review IIS/ECP logs for anomalous POST requests with unusually large or malformed __VIEWSTATE parameters predating patch deployment.
  5. Treat any pre-patch, internet-exposed Exchange server as a potential compromise and investigate for signs of webshells or lateral movement.

Key Details

PropertyValue
CVE ID CVE-2020-0688
Vendor / Product Microsoft — Exchange Server
NVD Published2020-02-11
NVD Last Modified2025-10-29
CVSS 3.1 Score8.8
CVSS 3.1 VectorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
SeverityHIGH
CWE CWE-287 find similar ↗
CISA KEV Added2021-11-03
CISA KEV Deadline2022-05-03
Known Ransomware Use ⚠️ Yes

CVSS 3.1 Breakdown

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Required Action

CISA BOD 22-01 Deadline: 2022-05-03. Apply updates per vendor instructions.

Timeline

DateEvent
2020-02-11Patched as part of Microsoft's February 2020 Patch Tuesday release
2020-02-27Public proof-of-concept and technical writeups published, followed by mass internet scanning for vulnerable Exchange servers
2021-11-03Added to CISA Known Exploited Vulnerabilities catalog
2022-05-03CISA BOD 22-01 remediation deadline

References

ResourceType
NVD — CVE-2020-0688 Vulnerability Database
CISA KEV Catalog Entry US Government
Microsoft Security Response Center — CVE-2020-0688 Vendor Advisory