# En regex lagde Cloudflare ned. 27 minutter.

Published: 2026-09-12

2. juli 2019, 13:42 UTC: én ny regel til Cloudflares Web Application Firewall går live i mere end 180 byer på cirka to sekunder. Det er en XSS-regel i simuleringstilstand, så den blokerer intet, men den kører stadig på hver anmodning, og den ender i .\*(?:.\*=.\*). PCRE backtrack'er, hver CPU-kerne der betjener HTTP rammer 100 %, og hvert Cloudflare-proxyet site returnerer 502 i 27 minutter; trafikken falder 82 %. Nødstop-kontakten sidder bag Cloudflare Access, som sidder bag Cloudflare. Postmortem, fra Cloudflares egen udskrift: CPU-sikringen fjernet uger tidligere i en refaktor, der skulle spare CPU, proceduren, der lod enhver regel springe iscenesættelse over, motoren uden kompleksitetsgaranti, de 11 årsager og de 7 rettelser. Dommen over løsningen: SHIP IT.

Canonical: https://thedailydiff.dev/da/video/2026-09-12-cloudflare-regex/

## Hvad denne video dækker

- 13:31–13:42 UTC: PR flettet, CI grøn (ingen CPU-test), Quicksilver skubber reglen til mere end 180 byer; WAF-regler springer DOG → PIG → Canary-faser over
- 13:45–14:07: første side; CPU 100 % verden over, trafik −82 %, 502'ere overalt; det interne kontrolpanel er bag Cloudflare Access, som er nede; nogle legitimationsoplysninger er udløbet; en sjældent øvet bypass
- 14:07–14:09: global WAF-terminering; trafik og CPU normal efter 27 minutter; 14:52 WAF tilbage minus reglen
- 2. juli (15:50 UTC) og 12. juli: Cloudflare udgiver notatet fra samme dag og det fulde postmortem; CPU-sikring genindsat, 3.868 regler genlæst, iscenesatte udrulninger, flytning til en lineær-tid regex-motor

## Oversat udskrift

Oversat fra den originale engelske fortælling. Tilgængelig lyd og undertekster styres af YouTube.

0:00 Én regulær udtryk går live på hver Cloudflare-server på én gang, og i de næste syvogtyve minutter er de sites bag den en 502-side, hvilket, for en firewall, er den strengest mulige indstilling. 2. juli 2019, 13:42 UTC. Cloudflare poster inden for to timer: ikke et angreb, en dårlig udrulning, trafik ned 82 procent. Ti dage senere udgiver CTO John Graham-Cumming den fulde postmortem, regex inkluderet, og Hacker News giver den 698 point,

0:26 hvilket for en nedetid er en stående ovation. Hvordan det sker, hvorfor det er muligt, og hvem der faktisk får skylden. Dette er The Daily Diff, postmortem. 13:31. En pull request flettes: én ny firewall-regel mod cross-site scripting, i simuleringstilstand, så den blokerer intet. 13:37, tests bestået; ingen måler CPU. 13:42, reglen sendes til 180 byer på to sekunder, fordi WAF-regler springer hund-, gris- og kanarie-faserne over, som andre udgivelser får.

0:54 13:45, den første side. 13:49, Hacker News har en tråd om status-siden, som stadig siger, at alle systemer er operationelle. Reglen ender i punkt-stjerne, punkt-stjerne, lig med, punkt-stjerne: alt, derefter alt, derefter et lighedstegn. PCRE gætter grådigt, fejler og backtrack'er gennem hver anden opdeling. x lig med x tager 23 trin. Tyve x'er efter lighedstegnet: 555.

1:15 Tyve x'er, intet lighedstegn: 4.067 trin for at finde intet. Kør det på hver anmodning, og hver kerne er på hundrede procent, gør intet, grundigt. To vagter burde have fanget det. CPU-grænsen på regler blev fjernet ved en fejl uger tidligere, i en refaktor, der skulle få WAF til at bruge mindre CPU. Og proceduren lader enhver regel springe iscenesættelse over, fordi regler findes for at stoppe live angreb; denne var ikke en nødsituation, og den gik alligevel globalt.

1:37 14:00, WAF er identificeret; intet angreb. 14:02, nogen foreslår den globale terminering: én komponent, slukket, verden over. Kontakten er bag Cloudflare Access. Cloudflare Access er bag Cloudflare. Nogle legitimationsoplysninger er udløbet på grund af manglende brug, så det hurtigste netværk på internettet bruger fem minutter på en bypass, som ingen havde øvet. 14:07, drab. 14:09, trafik normal. git blame: en udrulning med én hastighed, global; en CPU-sikring refaktoreret væk ved en

2:04 ulykke; en regex-motor uden øvre grænse. Ikke ingeniøren, der skrev reglen: postmortem lister elleve årsager og nævner ingen. Eksplosionsradius: 27 minutter, 82 procent af trafikken, 100 procent CPU på hver kerne, i hver by. Dashboardet og API'en sidder bag samme kant, så kunderne kan ikke engang slukke det. Hacker News, under postmortem: de havde ét problem, brugte et regulært udtryk, nu har de to. Gammel joke. Kompilerer stadig.

2:28 Dom, postmortem: SHIP IT. CPU-sikringen er tilbage, alle 3.868 regler læses manuelt, regler går gennem iscenesættelse, og motoren flyttes til en med lineær-tids garantier, udgivet af Ken Thompson i 1968. Mandag: ingen punkt-stjerne punkt-stjerne i noget, der kører per anmodning, og hold nødstopkontakten væk fra det, den dræber. Send mig den hændelse, du stadig ikke må tale om, i kommentarerne, eller på the daily diff dot dev.

2:53 Og det er diff'en for i dag. Jeg er Niko fra Axrisi. Flet ansvarligt.

## Kilder

- [John Graham-Cumming, "Details of the Cloudflare outage on July 2, 2019" (Jul 12, 2019)](https://blog.cloudflare.com/details-of-the-cloudflare-outage-on-july-2-2019/) — blog.cloudflare.com
- [Matthew Prince, "Cloudflare outage caused by bad software deploy (updated)" (Jul 2, 2019)](https://blog.cloudflare.com/cloudflare-outage/) — blog.cloudflare.com
- [Matthew Prince on X, Jul 2, 2019, 14:22 UTC](https://x.com/eastdakota/status/1146061591143538688) — x.com
- [Matthew Prince on X, Jul 2, 2019, 14:36 UTC ("No evidence yet attack related")](https://x.com/eastdakota/status/1146065231270907907) — x.com
- [Hacker News, Jul 2, 2019, 13:49 UTC — "Cloudflare Network Performance Issues" (631 points)](https://news.ycombinator.com/item?id=20334924) — news.ycombinator.com
- [Hacker News, Jul 2, 2019 — "Cloudflare outage caused by bad software deploy" (348 points)](https://news.ycombinator.com/item?id=20336332) — news.ycombinator.com
- [Hacker News, Jul 12, 2019 — "Details of the Cloudflare outage on July 2, 2019" (698 points)](https://news.ycombinator.com/item?id=20421538) — news.ycombinator.com
- [TechCrunch, Jul 2, 2019](https://techcrunch.com/2019/07/02/a-cloudflare-outage-is-impacting-sites-everywhere/) — techcrunch.com
