# 正規表現がCloudflareをダウンさせた。27分間。

Published: 2026-09-12

2019年7月2日13時42分（UTC）：CloudflareのWebアプリケーションファイアウォール（WAF）に新しいルールが180以上の都市で約2秒で適用されました。これはシミュレートモードのXSSルールであり、何もブロックしませんが、すべてのリクエストで実行され、末尾は.\*(?:.\*=.\*)となっています。PCREはバックトラックし、HTTPを処理するすべてのCPUコアが100%に達し、Cloudflareを介したすべてのサイトが27分間502を返し、トラフィックは82%減少しました。キルスイッチはCloudflare Accessの背後にあり、Cloudflare AccessはCloudflareの背後にあります。Cloudflare自身の報告書からの事後分析：数週間前にCPUを節約するためのリファクタリングで削除されたCPUガード、どのルールもステージングをスキップできるようにする手順、複雑性の保証がないエンジン、11の原因と7つの修正。修正に関する評決：SHIP IT。

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

## この動画の要点

- 13:31–13:42 UTC：PRがマージされ、CIはグリーン（CPUテストなし）、Quicksilverがルールを180以上の都市にプッシュ。WAFルールはDOG → PIG → Canaryのステージをスキップ。
- 13:45–14:07：最初のページ、CPUは世界中で100%、トラフィックは82%減、至る所で502。内部コントロールパネルはCloudflare Accessの背後にあり、ダウンしている。一部の認証情報が期限切れ。めったに訓練されないバイパス。
- 14:07–14:09：グローバルWAF終了。27分後にトラフィックとCPUが正常化。14:52にWAFがルールなしで復旧。
- 7月2日（15:50 UTC）と7月12日：Cloudflareが同日のメモと完全な事後分析を公開。CPUガードを再追加、3,868のルールを再確認、段階的な展開、線形時間正規表現エンジンへの移行。

## 翻訳されたトランスクリプト

オリジナルの英語ナレーションから翻訳されています。利用可能なオーディオとキャプションはYouTubeによって管理されています。

0:00 1つの正規表現がすべてのCloudflareサーバーに一斉に適用され、 その後の27分間、その背後にあるサイトは502ページとなり、 これはファイアウォールにとって可能な限り最も厳しい設定です。 2019年7月2日、13時42分UTC。 Cloudflareは2時間以内に投稿：攻撃ではなく、誤ったデプロイメントです。 トラフィックは82パーセント減少。 10日後、CTOのジョン・グラハム・カミングは完全な事後分析を公開し、 正規表現も含まれ、Hacker Newsは698ポイントを与えました。

0:26 これは停止としてはスタンディングオベーションです。 どのように発生したのか、なぜ可能だったのか、そして実際に誰が非難されるべきか。 The Daily Diff、事後分析です。 13時31分。プルリクエストがマージされました。クロスサイトスクリプティングに対する新しいファイアウォールルールが1つ、 シミュレートモードなので何もブロックしません。 13時37分、テストはパスしました。CPUを測定するテストはありませんでした。 13時42分、ルールは2秒で180都市に適用されました。 WAFルールは、他のリリースが行う犬、豚、カナリアのステージをスキップするためです。

0:54 13時45分、最初のページが表示されました。 13時49分、Hacker Newsでステータスページに関するスレッドが立ち上がりました。 これはまだすべてのシステムが稼働中と表示されていました。 ルールは「ドットスター、ドットスター、イコール、ドットスター」で終わります。つまり、何でもあり、 次に何でもあり、その次に等号です。 PCREは貪欲に推測し、失敗し、他のすべての分割をバックトラックします。 「xイコールx」は23ステップかかります。 イコールの後に20個のx：555。

1:15 20個のx、イコール記号なし：何も見つけずに4,067ステップ。 それをすべてのリクエストで実行すると、すべてのコアが100パーセントになり、 何もせずに、徹底的に。 2つのガードがそれを捉えるべきでした。 ルールに対するCPU制限は数週間前、誤って削除されていました。 WAFのCPU使用率を減らすためのリファクタリングで。 そして、その手順はどのルールもステージングをスキップすることを許します。なぜなら、ルールはライブ攻撃を阻止するために存在するためです。 これは緊急事態ではなかったのに、それでもグローバルに展開されました。

1:37 14時00分、WAFが特定されました。攻撃ではありません。 14時02分、誰かがグローバル終了を提案しました。1つのコンポーネントを、 世界中でオフにします。スイッチはCloudflare Accessの背後にあります。 Cloudflare AccessはCloudflareの背後にあります。 一部の認証情報は未使用のため期限切れになっていたため、インターネット上で最速のネットワークが、 誰も訓練していないバイパスに5分を費やしました。 14時07分、キル。14時09分、トラフィックは正常化。 git blame：展開は単一速度でグローバル。CPUガードは誤ってリファクタリングで削除。上限のない正規表現エンジン。

2:04 事故; 上限のない正規表現エンジン。 ルールを書いたエンジニアではありません。事後分析では11の原因が挙げられており、 誰も名前を挙げられていません。影響範囲：27分、トラフィックの82パーセント、 すべての都市のすべてのコアでCPUが100パーセント。 ダッシュボードとAPIは同じエッジの背後にあるため、顧客は切り替えることさえできません。 Hacker News、事後分析の下で：彼らには1つの問題がありました。 正規表現を使用し、今では2つの問題があります。 古いジョークです。まだコンパイルされます。

2:28 評決、事後分析：SHIP IT。 CPUガードが戻され、3,868個のルールすべてが手動で読み取られ、 ルールはステージングを通過し、エンジンは線形時間保証のあるものに移行します。 1968年にケン・トンプソンが発表したものです。 月曜日：リクエストごとに実行されるものにドットスター・ドットスターは使用しない。 そして、キルスイッチをそれが殺すものから離しておくこと。 まだ話すことを許されていないインシデントを教えてください。 コメント欄で、またはthedailydiff.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
