Summary
ProxyLogon, disclosed on 2 March 2021, was a chain of flaws in on-premises Microsoft Exchange Server that let an unauthenticated attacker take over a mail server completely, then use it to read everyone's email and plant a foothold in the network. China's state-sponsored HAFNIUM group used it as a zero-day for targeted espionage, but the moment Microsoft patched, the exploit became public and a free-for-all began: within days at least ten APT groups were mass-scanning and compromising every unpatched Exchange server they could find, dropping web shells and ransomware. An estimated 250,000 servers were compromised worldwide, including at least 30,000 in the US, in a matter of weeks. It is the case study in how fast a patched vulnerability becomes a worldwide free-for-all, and why internet-facing infrastructure has to be patched in hours, not weeks.
How it worked
ProxyLogon is a chain of flaws, not one. It begins with CVE-2021-26855, a server-side request forgery (SSRF): an unauthenticated attacker sends a crafted request that tricks the Exchange server into making internal requests as itself, in effect letting the attacker authenticate as the Exchange machine account without any credentials. Chained with a post-authentication file-write flaw (CVE-2021-27065), that becomes unauthenticated remote code execution: the attacker writes a web shell, a small malicious .aspx script, onto the server and then runs arbitrary commands through it. The chain had been independently found by two research teams, Volexity (which caught it being exploited in the wild) and DEVCORE's Orange Tsai (who reported it to Microsoft), before HAFNIUM's quiet campaign was uncovered.
From a compromised mail server, the attacker can read all of an organisation's email, harvest credentials, and pivot deeper into the network. No user had to click anything, and no password was needed. The web shell also provided durable access that survived the eventual patch, which is what made the cleanup so painful.
The damage
HAFNIUM, a Chinese state group, used ProxyLogon quietly as a zero-day for espionage first. But when Microsoft shipped the emergency patch on 2 March 2021, defenders and attackers alike reverse-engineered it into a working exploit within days, and a zero-day-turned-public gold rush followed. At least ten APT groups began mass-exploiting; an estimated 250,000 servers were compromised, with around 125,000 still unpatched a week after the fix, and at least 30,000 US organisations, small businesses, schools, and governments running on-premises Exchange, were breached in weeks, many left with web shells they did not know about. Nine days after the patch, the first ProxyLogon ransomware, DearCry, appeared. The response was extraordinary: CISA issued an emergency directive ordering federal agencies to patch or disconnect Exchange, and the FBI obtained a court warrant to reach into hundreds of private US servers and delete the attackers' web shells, notifying the owners afterward, a legal first.
Why ProxyLogon still matters
ProxyLogon is the definitive lesson in the patch gap. The window between a fix shipping and mass exploitation is now measured in hours: attackers reverse the patch to build the exploit, then scan the entire internet. So internet-facing infrastructure, and a mail server is about as juicy as it gets, must be patched on the shortest possible SLA, and you must assume that a public exploit means immediate, indiscriminate scanning. It also shows two patterns that recur: the SSRF-to-RCE chain, and web-shell persistence, the same model the Clop gang used in the MOVEit campaign two years later. And it is a strong argument for moving high-value, internet-facing systems like email off self-managed on-premises servers and onto managed services with a hardened, automatic patch cadence.
How to fix it
- Patch Exchange immediately with the out-of-band security updates, and treat any server that was internet-facing and unpatched as already compromised.
- Hunt for web shells (unexpected `.aspx` files in Exchange directories) and other persistence, not just the vulnerability; the patch closes the door but does not evict an attacker already inside.
- Reset credentials and machine-account secrets and review for lateral movement, since the attacker authenticated as the server and could pivot.
How to avoid it
- Patch internet-facing infrastructure on the shortest possible SLA; once a patch ships, attackers reverse it into a working exploit within hours and scan the whole internet.
- Reduce attack surface: do not expose mail servers and admin interfaces to the internet when a gateway, VPN, or managed service can sit in front.
- After any critical CVE in internet-facing software, assume mass exploitation and proactively hunt for web shells and other footholds.
- Prefer managed services with a hardened, automatic patch cadence for high-value internet-facing systems like email, rather than carrying the patch burden on-premises.
References
- https://www.microsoft.com/en-us/security/blog/2021/03/02/hafnium-targeting-exchange-servers/
- https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities/
- https://www.justice.gov/usao-sdtx/pr/justice-department-announces-court-authorized-effort-disrupt-exploitation-microsoft
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa21-062a
- https://nvd.nist.gov/vuln/detail/CVE-2021-26855
Related vulnerabilities
All Infra →- CRITICALINFRA-CAPITALONE-2019
In 2019, a former Amazon engineer stole the personal data of about 100 million Americans from Capital One, and she did it through a chain of cloud-security mistakes that has since become a teaching classic. A misconfigured web application firewall could be tricked into making requests on the attacker's behalf, a flaw called server-side request forgery. She pointed it at a special internal address that every AWS server can reach, the one that hands out the server's temporary cloud credentials, grabbed those credentials, and because they were far more powerful than they needed to be, used them to download Capital One's data straight out of its storage. It is the textbook SSRF-to-cloud-takeover chain, and the reason AWS hardened that metadata service afterward.
- HIGHINFRA-USBLITER8-2026
usbliter8, published on 18 June 2026 by a research group called Paradigm Shift, is an unpatchable BootROM exploit for Apple's A12 and A13 chips, the silicon inside the iPhone XS, XR and 11 families plus the Apple Watch Series 4 and 5. It is the long-awaited successor to checkm8, the 2019 exploit that broke every Apple chip from the A5 to the A11 and was assumed to be the end of that road. The bug lives in the SecureROM, the very first code an Apple device runs at power on, which is etched into the silicon at the factory and can never be altered by any software update. usbliter8 abuses a hardware flaw in the Synopsys DWC2 USB controller: a mismatch in how the controller tracks its DMA memory while buffering USB Setup packets lets an attacker walk a write pointer backwards through memory and overwrite arbitrary SRAM, ending in full code execution inside the most trusted code on the chip. From there it can boot unsigned firmware and step outside Apple's chain of trust entirely, stamping the string PWND into the device's USB serial number as proof of control. The catch is that it is not a remote attack: it needs physical possession of the device, DFU recovery mode, a USB connection and a small RP2350 microcontroller board, and nothing it changes survives a reboot. It also does not break the Secure Enclave, so a device protected by a strong passcode keeps its user data encrypted even after the boot chain has been taken over. Apple cannot repair the affected chips; the only real remedy is newer hardware, because the A14 and later configure the controller correctly and are out of reach.
- HIGHCVE-2026-31431
Copy Fail (CVE-2026-31431), disclosed on 29 April 2026 by the security firm Theori, is a Linux kernel flaw that turns any unprivileged local user into root with a 732-byte Python script and no luck required. Despite a name that sounds like a clipboard bug, it has nothing to do with copy and paste: it is a failed copy deep in the kernel's crypto code. A nine-year-old optimization in the AF_ALG crypto socket interface let an attacker steer the kernel into writing four attacker-chosen bytes into the page cache, the in-memory copy of files that the CPU actually executes. Patch the cached pages of a setuid-root binary like /usr/bin/su, run it, and you are root. The exploit is a straight-line logic flaw with no race condition and no hardcoded kernel addresses, so the exact same script runs at roughly 100 percent reliability across Ubuntu, RHEL, SUSE, Amazon Linux and every other distribution built since 2017. Worse, because the page cache is shared by the whole machine, it crosses container boundaries: one poisoned page in a Kubernetes pod can compromise neighbouring tenants and the host. The disk file is never touched, so file-integrity scanners stay silent. It rates CVSS 7.8 (High), was added to CISA's Known Exploited Vulnerabilities catalog on 1 May 2026, and is notable for how it was found: an AI-assisted code scan surfaced a bug that had been silently exploitable for nearly a decade in about one hour.
- CRITICALCVE-2025-1974
IngressNightmare was a chain of five vulnerabilities in the Ingress-NGINX Controller for Kubernetes disclosed on 24 March 2025 by the Wiz Research team, the most severe being CVE-2025-1974 (CVSS 9.8), which enabled unauthenticated remote code execution from the pod network. Wiz estimated about 43% of cloud environments were vulnerable and identified over 6,500 publicly exposed clusters, including Fortune 500 organizations. The controller's validating admission webhook ran as an unauthenticated HTTP endpoint reachable by any workload on the pod network, accepting attacker-supplied AdmissionReview requests containing crafted Ingress objects. The supporting CVEs (CVE-2025-24514 auth-url, CVE-2025-1097 auth-tls-match-cn, CVE-2025-1098 mirror UID, CVE-2025-24513 path bypass) injected unsanitized NGINX configuration directives via annotations into a temporary config the controller validated with nginx -t. The attacker uploaded a shared-library payload by abusing NGINX client-body buffering (an oversized Content-Length keeps the request file descriptor open in ProcFS) and then used the injected ssl_engine directive to load that library during validation, achieving code execution in the controller pod whose service account could read all cluster secrets across namespaces, enabling full cluster takeover.
- HIGHCLOUD-ENVFILE-EXTORTION-2024
On August 15, 2024, Palo Alto Networks Unit 42 detailed a large-scale extortion campaign that compromised cloud environments by harvesting exposed environment variable files. Attackers scanned at least 110,000 domains and collected over 90,000 unique variables, including roughly 7,000 cloud service credentials and 1,515 social media credentials, with their infrastructure probing around 230 million targets. The vector was a web server misconfiguration: .env files inside the web root were served as plaintext over HTTP because the servers had no rule denying access to dotfiles, exposing the long-lived AWS IAM access keys hardcoded inside. The initial IAM principals lacked full admin but retained permission to create roles and users, so attackers called CreateRole and attached AdministratorAccess to escalate, then spun up Lambda functions across regions to automate further internet-wide scanning. They used the victims' own AWS accounts to exfiltrate and delete S3 objects, then uploaded ransom notes demanding payment. The failure chain combined exposed dotfiles, long-lived hardcoded credentials, and over-permissioned IAM, not any cloud-provider flaw.
- CRITICALCLOUD-BUCKET-MONOPOLY-2024
In research disclosed to AWS on February 16, 2024 and presented at Black Hat USA and DEF CON 32 in August 2024, Aqua Security's Nautilus team described a class of S3 bucket-name takeover attacks they called Bucket Monopoly, affecting CloudFormation, Glue, EMR, SageMaker, Service Catalog, and CodeStar. These services auto-created S3 buckets with predictable names built from static prefixes plus the account ID and region, such as cf-templates-{hash}-{region}, aws-glue-assets-{account-id}-{region}, and sagemaker-{region}-{account-id}, where account IDs are discoverable from ARNs, access keys, and public repos. Because S3 bucket names are globally unique, an attacker could pre-create a victim's predictably named bucket in a region the victim had not yet used (a Shadow Resource), then the victim's service would later read attacker-controlled content from it. This enabled data tampering, information disclosure, remote code execution by injecting malicious Glue or CloudFormation content, and in some cases full account takeover via planted admin roles; AWS remediated by adding randomized suffixes to bucket names and enforcing aws:ResourceAccount conditions. The class also covers reuse of abandoned or dangling bucket names that a victim configuration still references.