# Een regex legde Cloudflare plat. 27 minuten.

Published: 2026-09-12

2 juli 2019, 13:42 UTC: één nieuwe regel voor Cloudflare's Web Application Firewall wordt live gezet in meer dan 180 steden in ongeveer twee seconden. Het is een XSS-regel in simulatiemodus, dus het blokkeert niets, maar het draait nog steeds op elk verzoek, en het eindigt in .\*(?:.\*=.\*). PCRE backtrackt, elke CPU-kern die HTTP-aanvragen verwerkt bereikt 100%, en elke Cloudflare-geproxyde site retourneert 502 voor 27 minuten; het verkeer daalt 82%. De kill switch bevindt zich achter Cloudflare Access, dat achter Cloudflare zit. Post-mortem, uit Cloudflare's eigen verslag: de CPU-beveiliging die weken eerder was verwijderd in een refactor om CPU te besparen, de procedure die elke regel in staat stelde staging over te slaan, de engine zonder complexiteitsgarantie, de 11 oorzaken en de 7 oplossingen. Oordeel over de oplossing: SHIP IT.

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

## Wat deze video behandelt

- 13:31–13:42 UTC: PR samengevoegd, CI groen (geen CPU-test), Quicksilver pusht de regel naar meer dan 180 steden; WAF-regels slaan de DOG → PIG → Canary-stadia over
- 13:45–14:07: eerste pagina; CPU 100% wereldwijd, verkeer −82%, overal 502's; het interne controlepaneel bevindt zich achter Cloudflare Access, dat niet werkt; sommige inloggegevens zijn verlopen; een zelden geoefende bypass
- 14:07–14:09: wereldwijde WAF beëindiging; verkeer en CPU normaal na 27 minuten; 14:52 WAF terug minus de regel
- 2 juli (15:50 UTC) en 12 juli: Cloudflare publiceert de notitie van dezelfde dag en de volledige post-mortem; CPU-beveiliging opnieuw toegevoegd, 3.868 regels opnieuw gelezen, gefaseerde uitrol, overstap naar een lineaire-tijd regex-engine

## Vertaald transcript

Vertaald vanuit de originele Engelse gesproken tekst. Beschikbare audio en ondertiteling worden beheerd door YouTube.

0:00 Eén reguliere expressie gaat tegelijkertijd live op elke Cloudflare-server, en gedurende de volgende zevenentwintig minuten zijn de sites erachter een 502-pagina, wat, voor een firewall, de strengst mogelijke instelling is. 2 juli 2019, 13:42 UTC. Cloudflare post binnen twee uur: geen aanval, een slechte implementatie, verkeer daalt 82 procent. Tien dagen later publiceert CTO John Graham-Cumming de volledige post-mortem, regex inbegrepen, en Hacker News geeft het 698 punten,

0:26 wat voor een storing een staande ovatie is. Hoe het gebeurt, waarom het mogelijk is en wie eigenlijk de schuld krijgt. Dit is The Daily Diff, post-mortem. 13:31. Een pull request wordt samengevoegd: één nieuwe firewallregel tegen cross-site scripting, in simulatiemodus, dus het blokkeert niets. 13:37, tests slagen; geen enkele meet CPU. 13:42, de regel wordt in twee seconden naar 180 steden gestuurd, omdat WAF-regels de dog-, pig- en canary-fasen overslaan die andere releases krijgen.

0:54 13:45, de eerste pagina. 13:49, Hacker News heeft een discussie over de statuspagina, die nog steeds aangeeft dat alle systemen operationeel zijn. De regel eindigt in punt-ster, punt-ster, is-gelijk-aan, punt-ster: alles, dan alles, dan een is-gelijk-teken. PCRE raadt gulzig, faalt en backtrackt door elke andere splitsing. x is-gelijk-aan x kost 23 stappen. Twintig x-en na het is-gelijk-teken: 555.

1:15 Twintig x-en, geen is-gelijk-teken: 4.067 stappen om niets te vinden. Voer dat uit op elk verzoek en elke kern is honderd procent, grondig niets doend. Twee bewakers hadden het moeten opmerken. De CPU-limiet op regels was weken eerder per ongeluk verwijderd, in een refactor die bedoeld was om de WAF minder CPU te laten gebruiken. En de procedure laat elke regel staging overslaan, omdat regels bestaan om live aanvallen te stoppen; deze was geen noodgeval, en ging toch wereldwijd.

1:37 14:00, de WAF is geïdentificeerd; geen aanval. 14:02, iemand stelt de wereldwijde beëindiging voor: één component, uit, wereldwijd. De schakelaar bevindt zich achter Cloudflare Access. Cloudflare Access bevindt zich achter Cloudflare. Sommige inloggegevens zijn verlopen door niet-gebruik, dus het snelste netwerk op het internet besteedt vijf minuten aan een bypass die niemand geoefend heeft. 14:07, uitschakelen. 14:09, verkeer normaal. git blame: een uitrol met één snelheid, wereldwijd; een CPU-beveiliging die per

2:04 ongeluk is gerefactored; een regex-engine zonder bovengrens. Niet de ingenieur die de regel schreef: de post-mortem somt elf oorzaken op en noemt niemand. Schadebereik: 27 minuten, 82 procent van het verkeer, 100 procent CPU op elke kern, in elke stad. Het dashboard en de API bevinden zich achter dezelfde edge, dus klanten kunnen het zelfs niet uitschakelen. Hacker News, onder de post-mortem: ze hadden één probleem, gebruikten een reguliere expressie, nu hebben ze er twee. Oude grap. Compileert nog steeds.

2:28 Oordeel, post-mortem: SHIP IT. De CPU-beveiliging is terug, alle 3.868 regels worden handmatig gelezen, regels doorlopen staging, en de engine stapt over naar één met lineaire-tijd garanties, gepubliceerd door Ken Thompson in 1968. Maandag: geen punt-ster punt-ster in iets dat per verzoek draait, en houd de kill switch uit de buurt van het ding dat het doodt. Stuur me het incident waar je nog steeds niet over mag praten, in de reacties, of op the daily diff dot dev.

2:53 En dat is de diff voor vandaag. Ik ben Niko van Axrisi. Merge verantwoordelijk.

## Bronnen

- [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
