# Regex je oborio Cloudflare. 27 minuta.

Published: 2026-09-12

2. jul 2019, 13:42 UTC: jedno novo pravilo za Cloudflare-ov Web Application Firewall kreće uživo u preko 180 gradova za oko dve sekunde. To je XSS pravilo u simulacionom režimu, tako da ne blokira ništa, ali se i dalje pokreće pri svakom zahtevu, a završava se sa .\*(?:.\*=.\*). PCRE se vraća unazad, svako CPU jezgro koje opslužuje HTTP dostiže 100 %, i svaki Cloudflare-proksirani sajt vraća 502 tokom 27 minuta; saobraćaj opada za 82 %. Prekidač za isključivanje se nalazi iza Cloudflare Access-a, koji se nalazi iza Cloudflare-a. Postmortem, iz Cloudflare-ovog sopstvenog izveštaja: CPU zaštita uklonjena nedeljama ranije u refaktorisanju namenjenom uštedi CPU-a, procedura koja je omogućila da svako pravilo preskoči fazu testiranja, mehanizam bez garancije složenosti, 11 uzroka i 7 popravki. Presuda o popravci: SHIP IT.

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

## Šta ovaj video pokriva

- 13:31–13:42 UTC: PR spojen, CI zelen (nema CPU testa), Quicksilver gura pravilo u 180+ gradova; WAF pravila preskaču DOG → PIG → Canary faze
- 13:45–14:07: prva stranica; CPU 100 % širom sveta, saobraćaj −82 %, 502s svuda; interni kontrolni panel je iza Cloudflare Access-a, koji je u kvaru; neki akreditivi su istekli; retko uvežbavan zaobilazni put
- 14:07–14:09: globalno WAF isključivanje; saobraćaj i CPU normalni nakon 27 minuta; 14:52 WAF ponovo radi minus to pravilo
- 2. jul (15:50 UTC) i 12. jul: Cloudflare objavljuje belešku istog dana i kompletan postmortem; CPU zaštita ponovo dodata, 3.868 pravila ponovo pročitano, fazna implementacija, prelazak na regex mehanizam linearnog vremena

## Preveden transkript

Prevedeno sa originalne engleske naracije. Dostupan audio i titlovi kontrolisani su od strane YouTube-a.

0:00 Jedan regularni izraz se istovremeno pokreće na svakom Cloudflare serveru, i sledećih dvadeset sedam minuta sajtovi iza njega su stranica 502, što je, za zaštitni zid, najstrože moguće podešavanje. 2. jul 2019, 13:42 UTC. Cloudflare objavljuje u roku od dva sata: nije napad, loše implementiranje, saobraćaj smanjen za 82 procenta. Deset dana kasnije CTO John Graham-Cumming objavljuje kompletan postmortem, uključen regex, i Hacker News mu daje 698 poena,

0:26 što je za prekid rada ovacija. Kako se to dogodilo, zašto je to moguće i ko je zapravo kriv. Ovo je The Daily Diff, postmortem. 13:31. Spaja se pull request: jedno novo pravilo zaštitnog zida protiv cross-site skriptovanja, u simulacionom režimu, tako da ne blokira ništa. 13:37, testovi prolaze; nijedan ne meri CPU. 13:42, pravilo se šalje u 180 gradova za dve sekunde, jer WAF pravila preskaču faze psa, svinje i kanarinca koje druge verzije dobijaju.

0:54 13:45, prva stranica. 13:49, Hacker News ima temu o statusnoj stranici, koja i dalje kaže da su svi sistemi u funkciji. Pravilo se završava sa tačka-zvezda, tačka-zvezda, jednako, tačka-zvezda: bilo šta, onda bilo šta, pa znak jednakosti. PCRE pogađa pohlepno, ne uspeva i vraća se kroz svaki drugi razdelnik. x jednako x traje 23 koraka. Dvadeset x-ova nakon znaka jednakosti: 555.

1:15 Dvadeset x-ova, bez znaka jednakosti: 4.067 koraka da se ništa ne pronađe. Pokrenite to na svakom zahtevu i svako jezgro je na sto posto, ne radeći ništa, temeljno. Dva čuvara su to trebala uhvatiti. Ograničenje CPU-a na pravila je greškom uklonjeno nedeljama ranije, u refaktorisanju namenjenom da WAF koristi manje CPU-a. A procedura dozvoljava da bilo koje pravilo preskoči testiranje, jer pravila postoje da zaustave stvarne napade; ovo nije bila hitna situacija, a ipak je postalo globalno.

1:37 14:00, WAF je identifikovan; nema napada. 14:02, neko predlaže globalno isključivanje: jedna komponenta, isključena, širom sveta. Prekidač je iza Cloudflare Access-a. Cloudflare Access je iza Cloudflare-a. Neki akreditivi su istekli zbog neupotrebe, tako da najbrža mreža na internetu provodi pet minuta na zaobilaznom putu koji niko nije uvežbao. 14:07, isključi. 14:09, saobraćaj normalan. git blame: implementacija sa jednom brzinom, globalna; CPU zaštita refaktorisana

2:04 greškom; regex mehanizam bez gornje granice. Nije inženjer koji je napisao pravilo: postmortem navodi jedanaest uzroka i ne imenuje nikoga. Radijus eksplozije: 27 minuta, 82 procenta saobraćaja, 100 procenata CPU-a na svakom jezgru, u svakom gradu. Kontrolna tabla i API se nalaze iza iste ivice, tako da korisnici ne mogu čak ni da ga isključe, Hacker News, ispod postmortema: imali su jedan problem, koristili regularni izraz, sada imaju dva. Stara šala. I dalje se kompajlira.

2:28 Presuda, postmortem: SHIP IT. CPU zaštita je vraćena, svih 3.868 pravila se ručno čitaju, pravila prolaze kroz testiranje, a mehanizam prelazi na onaj sa linearnim vremenom garancijama, objavljen od strane Ken Thompsona 1968. Ponedeljak: nema tačka-zvezda tačka-zvezda u bilo čemu što se pokreće po zahtevu, i držati prekidač za isključivanje van onoga što ubija. Pošaljite mi incident o kome i dalje ne smete da govorite, u komentarima, ili na the daily diff dot dev.

2:53 I to je razlika za danas. Ja sam Niko iz Axrisi-ja. Spajajte odgovorno.

## Izvori

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