Cloudflare says the November 18 outage was caused by a change to one of its “database systems' permissions”, not by “malicious activity of any kind”
On 18 November 2025 at 11:20 UTC (all times in this blog are UTC), Cloudflare's network began experiencing significant failures to deliver core network traffic.
Cloudflare Matthew Prince
Context & Ripple Effects
Cloudflare had already said the service disruption was resolved on the day it occurred; this account identifies the internal change behind that event rather than treating it as an external attack. It follows a prior Cloudflare incident in which a bug caused customer log-delivery losses, underscoring that operational defects can affect more than one layer of the platform.
The explicit denial of malicious activity also distinguishes this episode from Cloudflare’s disclosed 2023 intrusion tied to stolen Okta tokens. For customers, the material issue is therefore the resilience of production access controls and change processes.
First-order effects
- Cloudflare’s core-traffic delivery failed during the incident, directly disrupting customers and the services that depend on its network.
- Attributing the event to a database-permission change narrows the immediate response toward reviewing and remediating internal configuration and authorization controls, rather than activating an intrusion-led response.
Second-order effects
- Customers that rely on Cloudflare for critical delivery paths are likely to reassess failover plans and the operational assurances they require from the provider after the same-day resolution notice.
- The incident raises the value of safeguards around high-impact permission changes—such as staged rollout, validation, and rapid rollback—across infrastructure providers with shared control planes.
Third-order effects
- If similar incidents recur, cloud-edge providers will face growing pressure to treat administrative permissions as production-critical reliability surfaces, not merely security settings.
- The broader risk is concentration of operational blast radius: a small internal control-plane change can interrupt many downstream services at once, increasing demand for independently testable resilience and multi-provider contingency options.
The trend: This is part of a broader shift in which infrastructure reliability increasingly depends on governing internal configuration and identity changes with the same rigor as external cyber threats.
Related: Cloudflare · Cloudflare’s same-day outage resolution update · Cloudflare’s subsequent 25-minute outage · Cloudflare’s customer log-delivery incident
Related Coverage
- Why Today's Internet Is So Fragile Bloomberg · Rose Henderson
- The Cloudflare Outage May Be a Security Roadmap Krebs on Security · Brian Krebs
- A massive Cloudflare outage brought down X, ChatGPT, and even Downdetector The Verge · Emma Roth
- Cloudflare Outage Shouldn't Prompt ‘Knee-Jerk Decisions’: Gartner CRN · Kyle Alspach
- Cloudflare explains Tuesday's outage that temporarily took down ChatGPT The Verge · Richard Lawler
- Cloudflare outage causes error messages across the internet The Guardian · Robert Booth
- ‘We Let the Internet Down Today:’ Cloudflare Admits Massive Outage Was Caused by Internal Error Breitbart · Lucas Nolan
- Cloudflare Apologizes For Massive Outage & Details What Went Horribly Wrong HotHardware · Paul Lilly
- Yesterday's global internet outage caused by single file on Cloudflare servers — unexpected file size caused catastrophic error, knocking out several major websites Tom's Hardware · Jowi Morales
- How a bot management file push crippled Cloudflare's global network Network World · Nidhi Singal
- How one computer file accidentally took down 20% of the internet yesterday - in plain English CryptoSlate · Liam ‘Akiba’ Wright
- Cloudflare CEO apologizes after global outage took down parts of the internet The American Bazaar · Shubhangi Chowdhury
- Cloudflare CEO Apologises After Major Outage; Says It Wasn't a Cyberattack Windows Report · Rishaj Upadhyay
- Cloudflare explains the mistake that took down large chunks of the internet yesterday 9to5Mac · Ben Lovejoy
- The Cloudflare outage explained: What happened, who was impacted, and what was the root cause? ITPro · Ross Kelly
- After Cloudflare outage, Microsoft 365 is now down as files become unusable Neowin · Sayan Sen
- Cloudflare blames bot management system for yesterday's widespread outage CyberInsider · Amar Ćemanović
- Cloudflare outlines what caused major outage - but says a hack wasn't to blame TechRadar · Craig Hale
- Cloudflare Outage or Cyberattack? The Real Reason Behind the Massive Disruption The Cyber Express · Ashish Khaitan
- Cloudflare CEO explains exactly what caused global outage Mashable · Amanda Yeo
- Record-Breaking Cloud Incident Brings Outage Through the Internet Security Boulevard
- Cloudflare outage was not caused by a cyber attack Engadget · Mariella Moon
- Cloudflare admits a bot filter bug caused its worst outage since 2019 Dataconomy · Kerem Gülen
- Cloudflare Discloses Technical Details Behind Massive Outage that Breaks the Internet Cyber Security News · Guru Baran
- Cloudflare broke itself - and a big chunk of the Internet - with a bad database query The Register · Simon Sharwood
- Quoting Matthew Prince Simon Willison's Weblog · Simon Willison
- Cloudflare apologises for ‘the pain we caused the Internet’ and admits a file size error brought down large parts of the web yesterday, not a malicious cyberattack PC Gamer · Jeremy Laird
- Defending the cloud: Azure neutralized a record-breaking 15 Tbps DDoS attack Microsoft Tech Community
- It was not, in fact, DNS this time. (A typically detailed, technically comprehensive post-mortem from Cloudflare delivered just hours after they — recovered from their biggest outage since 2019. I know of no other provider with this level of detail combined with this kind of turnaround time on an outage post-mortem.) … @darkuncle@infosec.exchange · Scott Francis
- Buried in this nicely-detailed RCA is a pretty damning fact: — Cloudflare left .unwrap() in mission-critical Rust code. — For non-Rustaceans, .unwrap() handles a type called Result that can either be Ok with a value, or an Err with an Error. The whole point is to gracefully handle errors and not let panics make it to production code. … @mttaggart@infosec.exchange · Taggart
- Cloudflare outage on November 18, 2025 post mortem Hacker News
- Cloudflare outage on November 18, 2025 Lobsters
- Cloudflare Explains Its Worst Outage Since 2019 11 Slashdot · Msmash
Discussion
-
@eastdakota
Matthew Prince
on x
We let the Internet down today. Here's our technical post mortem on what happened. On behalf of the entire @Cloudflare team, I'm sorry. https://blog.cloudflare.com/ ...
-
@olmec_dongdold
@olmec_dongdold
on x
It shouldn't be possible for you to “let down the internet”. It's completely absurd to have global infrastructure at the mercy of a single point of failure
-
@charles_irl
@charles_irl
on x
https://blog.cloudflare.com/ ... oh my god, it was an ML feature pipeline [image]
-
@dani_avila7
Daniel San
on x
Really appreciate Cloudflare's transparency here. This is how you write a postmortem: They had a 3hr outage today caused by a database permissions change that doubled their Bot Management config file size, hitting a hardcoded limit in their Rust proxy. The config regenerated
-
@niccoatesuk
Nic Coates
on x
Incidents happen. But providing a detailed RCA helps regain trust. Nice one @Cloudflare team. (Suggest one other follow up action: review your status page provider and make sure it's remains up during an incident 😉)
-
@gergelyorosz
Gergely Orosz
on x
More like: September 26: got new running shoes because the previous one was worn down and falling apart 53 days later: fell flat on my face while running my usual route, tripping on something unexpected “The new shoe is clearly to blame” (clearly it's not)
-
@cyb3rops
Florian Roth
on x
Cloudflare went down because a ClickHouse change made a metadata query return duplicate columns. That blew up the size of a config file, it spread across the network and one module couldn't handle the larger file and crashed. Everything after that was basically fallout from this
-
@tannerlinsley
Tanner Linsley
on x
This is one of the best postmortems I've ever read.
-
@wishee0
Vaish
on x
sooo, @Cloudflare happened to take down half the internet cause... a file was too big??? - db permissions change at 11:05 made a query return duplicate rows (default + r0 db) - bot management feature file doubled from ~60 to 200+ entries - rust code had hardcoded 200 feature [ima…
-
@vicvijayakumar
Vic
on x
lost a lot of money today betting on dns [image]
-
@uk_daniel_card
@uk_daniel_card
on x
The cloudflare report is good to see https://blog.cloudflare.com/ ... [image]
-
@jondot
@jondot
on x
TLDR; A single unwrap() dropped the Internet. This is not Rust at fault, it's similar to any give NPE in any given other language only that with Rust you are forced to decide what to do. The engineer in this case decided that it's OK to crash. Mistakes in judgement can happen
-
@timurguvenkaya
Timur Guvenkaya
on x
The internet was down because of the basic panic on .unwrap() in Rust Never use unwrap/expect in production unless: a) It is in tests b) You have safeguards before c) It is asserting initial system state [image]
-
@malwarejake
Jake Williams
on x
The Cloudflare outage was caused by a configuration file growing too large. Likely, they were blocking too many scrapers and caused out of memory exceptions parsing the file. I'll be amazed if blocking AI scrapers isn't the outage catalyst. https://www.theverge.com/...
-
@jacksh4h
Jack
on x
@eastdakota @Cloudflare McD down how to eat Big Mac? [image]
-
@lundukejournal
@lundukejournal
on x
September, 26: Cloudflare rewritten in “memory safe” Rust. The change is touted as “faster and more secure” because of Rust. https://blog.cloudflare.com/ ... November, 18 (53 days later): Cloudflare has a massive outage, which took down large portions of the Internet, because of …
-
@gergelyorosz
Gergely Orosz
on x
Imagine if all major tech companies took outages as seriously, and held themselves accountable publicly as Cloudflare does. But 99% of them do not: and so I trust Cloudflare more than almost any other company (including the hyperscalers). Cloudflare next level in transparency
-
@eastdakota
Matthew Prince
on x
@DCathal @Cloudflare Hardly had time to wordsmith. Think record for time from major incident to full technical post mortem. I may be listed as the author but took a whole team across the org to pull together the details to write.
-
@eastdakota
Matthew Prince
on x
@Anubhav_Mishra_ @Cloudflare I disagree. We can be better. By far.
-
@_felipe
Felipe O. Carvalho
on x
We need an .unwrap_in_debug_builds_but_just_ carry_on_in_release_builds() function in Rust to stop these incidents. I have recently caused problems with a panic that would be informative in debug builds during testing but didn't really have to fire in production. [image]
-
@shrirambalaji
Shriram Balaji
on x
wild, a single unwrap caused panic, and led to half the Internet going down https://github.com/..., we probably need a lint rule or something to avoid unwrap leaking into systems that shouldn't fail [image]
-
@ittaia
Ittai Abraham
on x
Wonderful postmortem! Configuration change of a database you didn't know about renders internet wide liveness failure. 1987: A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable https://lamport.azurewebs…
-
@cloudflare
@cloudflare
on x
On November 18 Cloudflare experienced a service outage, triggered by an issue with a Bot Management feature, impacting multiple Cloudflare services. Here's a detailed breakdown of what happened. https://blog.cloudflare.com/ ...
-
r/sre
r
on reddit
Cloudflare Outage Postmortem
-
r/programming
r
on reddit
Cloudflare outage on November 18, 2025 - official response
-
r/Futurology
r
on reddit
Internet backbone failure raises questions about centralized cloud infrastructure