# regex တစ်ခုက Cloudflare ကို ၂၇ မိနစ်ကြာ အလုပ်မလုပ်အောင် လုပ်ခဲ့သည်။

Published: 2026-09-12

ဇူလိုင် ၂၊ ၂၀၁၉၊ ၁၃:၄၂ UTC: Cloudflare ၏ Web Application Firewall အတွက် စည်းမျဉ်းလဲစမ်းသပ်မှု mode XSS rule အသစ်တစ်ခုသည် မြို့ပေါင်း ၁၈၀+ ကျော်တွင် ၂ စက္ကန့်အတွင်း အသက်ဝင်ခဲ့သည်။ ၎င်းသည် simulate mode တွင်ရှိသော XSS rule ဖြစ်သောကြောင့် မည်သည့်အရာကိုမှ ပိတ်ဆို့ခြင်းမရှိသော်လည်း request တိုင်းတွင် အလုပ်လုပ်နေဆဲဖြစ်ပြီး .\*(?:.\*=.\*) ဖြင့် အဆုံးသတ်ထားသည်။ PCRE backtracks များ၊ HTTP ကို ဝန်ဆောင်မှုပေးနေသော CPU core တိုင်းသည် ၁၀၀% ရောက်ရှိသွားကာ Cloudflare မှ proxy လုပ်ထားသော site တိုင်းသည် ၂၇ မိနစ်ကြာ 502 ကို ပြန်လည်ပေးပို့သည်။ traffic သည် ၈၂% ကျဆင်းသည်။ kill switch သည် Cloudflare Access နောက်တွင် တည်ရှိပြီး၊ Cloudflare Access သည် Cloudflare နောက်တွင် တည်ရှိသည်။ Cloudflare ၏ ကိုယ်ပိုင်ရေးသားထားသော Postmortem မှ: CPU ကို ချွေတာရန် ရည်ရွယ်၍ ရက်သတ္တပတ်များစွာ အစောပိုင်းက ဖယ်ရှားခဲ့သော CPU guard၊ မည်သည့် rule ကိုမဆို staging ကို ကျော်လွှားခွင့်ပြုသည့် လုပ်ထုံးလုပ်နည်း၊ ရှုပ်ထွေးမှု အာမခံချက်မရှိသော engine၊ အကြောင်းရင်း ၁၁ ခုနှင့် ပြုပြင်မှု ၇ ခု။ ပြုပြင်မှုအပေါ် စီရင်ချက်: SHIP IT။

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

## ဤဗီဒီယိုတွင် ဖော်ပြထားသောအရာများ

- ၁၃:၃၁–၁၃:၄၂ UTC: PR ပေါင်းစည်းခဲ့သည်၊ CI green (CPU စမ်းသပ်မှုမရှိ)၊ Quicksilver သည် rule ကို မြို့ပေါင်း ၁၈၀+ ကျော်သို့ တွန်းပို့ခဲ့သည်; WAF rule များသည် DOG → PIG → Canary အဆင့်များကို ကျော်သွားသည်။
- ၁၃:၄၅–၁၄:၀၇: ပထမစာမျက်နှာ; ကမ္ဘာတစ်ဝှမ်း CPU ၁၀၀%၊ traffic −၈၂%၊ နေရာတိုင်းတွင် 502s; internal control panel သည် Cloudflare Access နောက်တွင် ရှိပြီး ၎င်းသည် ပိတ်သွားခဲ့သည်; အချို့သော credentials များ သက်တမ်းကုန်ဆုံးခဲ့သည်; အလေ့အကျင့်နည်းသော bypass
- ၁၄:၀၇–၁၄:၀၉: ကမ္ဘာလုံးဆိုင်ရာ WAF ရပ်ဆိုင်း; ၂၇ မိနစ်အကြာတွင် traffic နှင့် CPU ပုံမှန်ပြန်ဖြစ်; ၁၄:၅၂ တွင် WAF သည် rule မပါဘဲ ပြန်လည်စတင်ခဲ့သည်။
- ဇူလိုင် ၂ (၁၅:၅၀ UTC) နှင့် ဇူလိုင် ၁၂: Cloudflare သည် ထိုနေ့တွင် မှတ်စုနှင့် postmortem အပြည့်အစုံကို ထုတ်ပြန်ခဲ့သည်; CPU guard ကို ပြန်လည်ထည့်သွင်းခဲ့သည်၊ rule ၃,၈၆၈ ခုကို ပြန်လည်စစ်ဆေးခဲ့သည်၊ အဆင့်လိုက် ထုတ်ပြန်မှုများ၊ linear-time regex engine သို့ ပြောင်းရွှေ့ခဲ့သည်။

## ဘာသာပြန်ထားသော စာသားမှတ်တမ်း

မူရင်း အင်္ဂလိပ်စကားပြောမှ ဘာသာပြန်ထားသည်။ ရရှိနိုင်သော အသံနှင့် စာတန်းထိုးများကို YouTube မှ ထိန်းချုပ်ထားသည်။

0:00 ပုံမှန် expression တစ်ခုသည် Cloudflare server တိုင်းတွင် တစ်ပြိုင်နက်တည်း အသက်ဝင်ခဲ့သည်၊ ထို့နောက် ၂၇ မိနစ်ကြာသည်အထိ ၎င်းနောက်ကွယ်ရှိ site များသည် 502 page ဖြစ်နေခဲ့သည်၊ ၎င်းသည် firewall အတွက် ဖြစ်နိုင်သမျှ အတင်းကြပ်ဆုံး setting ဖြစ်သည်။ ဇူလိုင် ၂ ရက်၊ ၂၀၁၉၊ ၁၃:၄၂ UTC။ Cloudflare သည် နှစ်နာရီအတွင်း ထုတ်ပြန်သည်: တိုက်ခိုက်မှုမဟုတ်၊ deploy မှားယွင်းမှု၊ traffic ၈၂ ရာခိုင်နှုန်း ကျဆင်းသွားသည်။ ၁၀ ရက်အကြာတွင် CTO John Graham-Cumming သည် postmortem အပြည့်အစုံကို ထုတ်ပြန်ခဲ့သည်၊ regex ပါဝင်သည်၊ Hacker News က ၎င်းကို ၆၉၈ မှတ် ပေးခဲ့သည်၊

0:26 ၎င်းသည် ဝန်ဆောင်မှုပြတ်တောက်မှုအတွက် ဂုဏ်ပြုဆုပေးခြင်းဖြစ်သည်။ မည်သို့ဖြစ်ပျက်ခဲ့သည်၊ အဘယ်ကြောင့်ဖြစ်နိုင်သည်၊ မည်သူသည် အမှန်တကယ် အပြစ်တင်ခံရသနည်း။ ၎င်းသည် The Daily Diff, postmortem ဖြစ်သည်။ ၁၃:၃၁။ pull request တစ်ခု ပေါင်းစည်းသည်- cross-site scripting ကို တန်ပြန်ရန် firewall rule အသစ်တစ်ခု၊ simulate mode တွင်၊ ထို့ကြောင့် မည်သည့်အရာကိုမျှ ပိတ်ဆို့ခြင်းမရှိပါ။ ၁၃:၃၇၊ စမ်းသပ်မှုများ အောင်မြင်သည်; မည်သူမျှ CPU ကို တိုင်းတာခြင်းမရှိပါ။ ၁၃:၄၂၊ rule ကို နှစ်စက္ကန့်အတွင်း မြို့ပေါင်း ၁၈၀ သို့ ပို့ခဲ့သည်၊ အဘယ်ကြောင့်ဆိုသော် WAF rule များသည် အခြားသော release များ ရရှိသော dog, pig နှင့် canary အဆင့်များကို ကျော်သွားသောကြောင့်ဖြစ်သည်။

0:54 ၁၃:၄၅၊ ပထမဆုံး စာမျက်နှာ။ ၁၃:၄၉၊ Hacker News တွင် status page နှင့် ပတ်သက်၍ thread တစ်ခုရှိသည်၊ ၎င်းသည် စနစ်အားလုံး အလုပ်လုပ်နေသေးကြောင်း ဖော်ပြနေဆဲဖြစ်သည်။ rule သည် dot-star, dot-star, equals, dot-star ဖြင့် အဆုံးသတ်သည်: မည်သည့်အရာမဆို၊ ထို့နောက် မည်သည့်အရာမဆို၊ ထို့နောက် ညီမျှခြင်းသင်္ကေတ။ PCRE သည် လောဘကြီးစွာ ခန့်မှန်းသည်၊ မအောင်မြင်ဘဲ အခြားသော split တိုင်းမှ ပြန်လည်စစ်ဆေးသည်။ x ညီမျှ x သည် ၂၃ ဆင့်ကြာသည်။ ညီမျှခြင်းနောက်ရှိ x ၂၀-လုံး: ၅၅၅။

1:15 x ၂၀-လုံး၊ ညီမျှခြင်းသင်္ကေတမရှိ: မည်သည့်အရာမျှ မတွေ့ရန် ၄,၀၆၇ ဆင့်ကြာသည်။ ၎င်းကို request တိုင်းတွင် run ပါက core တိုင်းသည် ၁၀၀ ရာခိုင်နှုန်းဖြစ်နေသည်၊ လုံးဝ ဘာမှ မလုပ်ဘဲ။ အစောင့်နှစ်ဦးက ၎င်းကို ဖမ်းမိသင့်သည်။ rule များပေါ်ရှိ CPU ကန့်သတ်ချက်ကို ရက်သတ္တပတ်များစွာ အစောပိုင်းက မှားယွင်းစွာ ဖယ်ရှားခဲ့သည်၊ WAF ကို CPU နည်းပါးစွာ အသုံးပြုစေရန် ရည်ရွယ်သည့် refactor တွင်။ ထို့ပြင် လုပ်ထုံးလုပ်နည်းသည် မည်သည့် rule ကိုမဆို staging ကို ကျော်လွှားခွင့်ပြုသည်၊ အဘယ်ကြောင့်ဆိုသော် rule များသည် တိုက်ရိုက်တိုက်ခိုက်မှုများကို ရပ်တန့်ရန် တည်ရှိသောကြောင့်ဖြစ်သည်။ ဤ rule သည် အရေးပေါ်အခြေအနေမဟုတ်ခဲ့သော်လည်း ကမ္ဘာလုံးဆိုင်ရာ ဖြစ်သွားခဲ့သည်။ ဤ rule သည် အရေးပေါ်အခြေအနေ မဟုတ်သော်လည်း ကမ္ဘာလုံးဆိုင်ရာ အတိုင်းအတာဖြင့် ဖြစ်သွားခဲ့သည်။

1:37 ၁၄:၀၀၊ WAF ကို ဖော်ထုတ်ခဲ့သည်; တိုက်ခိုက်မှုမဟုတ်ပါ။ ၁၄:၀၂၊ တစ်စုံတစ်ဦးက ကမ္ဘာလုံးဆိုင်ရာ ရပ်ဆိုင်းရန် အဆိုပြုခဲ့သည်- အစိတ်အပိုင်းတစ်ခု၊ ပိတ်လိုက်သည်၊ ကမ္ဘာတစ်ဝှမ်း။ switch သည် Cloudflare Access နောက်တွင် ရှိသည်။ Cloudflare Access သည် Cloudflare နောက်တွင် ရှိသည်။ အချို့သော credentials များသည် အသုံးမပြုခြင်းကြောင့် သက်တမ်းကုန်ဆုံးခဲ့သည်၊ ထို့ကြောင့် အင်တာနက်ပေါ်ရှိ အမြန်ဆုံး network သည် မည်သူမျှ အလေ့အကျင့်မရှိသော bypass တစ်ခုပေါ်တွင် ငါးမိနစ် ကုန်ဆုံးခဲ့သည်။ ၁၄:၀၇၊ ပိတ်သည်။ ၁၄:၀၉၊ traffic ပုံမှန်ပြန်ဖြစ်သည်။ git blame: အရှိန်တစ်မျိုးတည်းဖြင့် rollout၊ ကမ္ဘာလုံးဆိုင်ရာ; မတော်တဆ ဖယ်ရှားခံခဲ့ရသော CPU guard;

2:04 အပေါ်ကန့်သတ်ချက်မရှိသော regex engine တစ်ခု။ rule ကို ရေးသားခဲ့သည့် engineer မဟုတ်ပါ: postmortem တွင် အကြောင်းရင်း ၁၁ ခုနှင့် မည်သူ့ကိုမျှ အမည်မဖော်ပြထားပါ။ ထိခိုက်မှု အတိုင်းအတာ: ၂၇ မိနစ်၊ traffic ၏ ၈၂ ရာခိုင်နှုန်း၊ မြို့တိုင်းရှိ core တိုင်းတွင် CPU ၁၀၀ ရာခိုင်နှုန်း။ dashboard နှင့် API တို့သည် တူညီသော edge နောက်တွင် ရှိနေသောကြောင့် customer များသည်ပင် ၎င်းကို မပိတ်နိုင်ပါ။ Hacker News, postmortem အောက်တွင်: ၎င်းတို့တွင် ပြဿနာတစ်ခုရှိခဲ့သည်၊ ပုံမှန် expression ကို အသုံးပြုခဲ့သည်၊ ယခု ၎င်းတို့တွင် နှစ်ခုရှိသည်။ ဟာသဟောင်း။ အလုပ်လုပ်ဆဲ။

2:28 စီရင်ချက်၊ postmortem: SHIP IT။ CPU guard ပြန်လည်ရောက်ရှိလာသည်၊ rule ၃,၈၆၈ ခုလုံးကို လက်ဖြင့် စစ်ဆေးသည်၊ rule များသည် staging မှတဆင့် သွားသည်၊ engine သည် linear-time အာမခံချက်များရှိသော engine တစ်ခုသို့ ပြောင်းရွှေ့သည်၊ ၎င်းကို Ken Thompson မှ ၁၉၆၈ တွင် ထုတ်ပြန်ခဲ့သည်။ တနင်္လာနေ့: request တိုင်းတွင် အလုပ်လုပ်သော မည်သည့်အရာတွင်မဆို dot-star dot-star မရှိစေရ၊ ၎င်းကို သတ်ပစ်မည့်အရာနှင့် kill switch ကို ခွဲထားပါ။ သင်ပြောခွင့်မပြုသေးသည့် ဖြစ်ရပ်ကို ကျွန်ုပ်ထံ ပေးပို့ပါ၊ comments တွင် သို့မဟုတ် the daily diff dot dev တွင်။

2:53 ၎င်းသည် ယနေ့အတွက် diff ဖြစ်သည်။ ကျွန်ုပ်သည် Axrisi မှ Niko ဖြစ်ပါသည်။ တာဝန်ယူမှုရှိစွာ ပေါင်းစည်းပါ။

## ရင်းမြစ်များ

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