- 2025年12月5日08:47 UTCにCloudflareネットワークの一部で重大な障害が発生し、約25分後の09:12に完全復旧した
- 全体の**HTTPトラフィックの約28%**が影響を受け、特定の条件を満たす顧客のみが障害を体験
- 原因はReact Server Components脆弱性(CVE-2025-55182)対応のために行ったWAF(本文パースロジック)変更で、サイバー攻撃とは無関係
- FL1プロキシのコードエラーによりHTTP 500エラーが発生し、新しいRustベースのFL2プロキシでは同様のエラーは発生しなかった
- Cloudflareは11月18日の障害後も同様の問題が再発した点を認め、デプロイの安全性と回復力強化プロジェクトを最優先課題として進めている
障害概要
- 2025年12月5日08:47 UTCにCloudflareネットワークの一部で障害が発生
- 09:12に全サービスが復旧し、影響は25分間
- 全体のHTTPトラフィックの約28%が影響を受けた
- 障害はサイバー攻撃や悪意のある行為とは無関係で、内部設定変更中に発生
- React Server Componentsの新しい脆弱性対応のためのWAF本文のパースロジック修正が原因
障害原因と技術的背景
- Cloudflare WAFは悪意あるペイロードの検知のため、HTTPリクエスト本文をメモリ上でバッファリングする
- 既存のバッファサイズを128KBから1MBへ拡張中だった
- 内部テストツールが新しいバッファサイズをサポートしていなかったため、テストツールを無効化する2回目の変更を実施
- この変更はグローバル設定システムを通じて即座に全サーバへ展開
- FL1プロキシでこの変更がエラー状態を引き起こし、HTTP 500応答が発生
- エラーメッセージ:
attempt to index field 'execute' (a nil value)
- 問題は即座に特定され、09:12に変更がロールバックされた
影響範囲
- FL1プロキシを使用し、Cloudflare Managed Rulesetを適用している顧客のみ影響
- 対象サイトのすべてのリクエストがHTTP 500エラーを返却
/cdn-cgi/traceなど一部のテストエンドポイントは例外
- 中国のネットワークおよび他の構成の顧客には影響なし
ランタイムエラーの詳細
- Cloudflareのrulesetsシステムは、リクエストごとにルールを評価する
- ルールはフィルターとアクションで構成され、
executeアクションは他のルールセットを呼び出す
- 内部ロギングシステムが
executeを使ってテストルールを評価
- killswitchシステムは誤作動ルールを無効化するよう設計されているが、
executeアクションを含むルールへのkillswitch適用は今回が初めて
executeオブジェクトが存在しない状態でアクセスしようとしたためLuaエラーが発生
- このエラーは数年間存在していたが検知されなかった単純なコードバグ
- Rustで実装されたFL2プロキシでは同じエラーは発生しない
11月18日障害後の改善進捗
- 11月18日にも同様のグローバルデプロイによる大規模障害が発生
- 当時、顧客数百社と直接連携し、単一更新の全社展開防止計画を共有
- その改善作業がまだ完了しておらず、今回の障害に影響
- Cloudflareはこれを会社全体の最優先課題として設定
進行中の回復力強化プロジェクト
- Enhanced Rollouts & Versioning
- 脅威対応データおよび設定変更にも段階的デプロイ・健全性検証・即時ロールバック機能を適用
- Streamlined Break Glass Capabilities
- 内部サービスとコントロールプレーン間の相互作用時にも緊急時操作の実行可能性を確保
- Fail-Openエラー処理
- 設定ファイルのエラー時にリクエストをブロックせず、デフォルトの正常状態へ切り替えるかトラフィックを通過
- 一部のサービスではfail-open/fail-closedの選択肢を提供予定
- 来週までにすべての回復力プロジェクトの詳細を公開予定
- それまで**ネットワーク変更を全面停止(ロックダウン)**した状態を維持
タイムライン(UTC)
- 08:47 – 構成変更のデプロイを開始し、ネットワークへ展開
- 08:48 – 全体への影響発生
- 08:50 – 自動アラートでインシデント宣言
- 09:11 – 変更のロールバックを開始
- 09:12 – 復旧完了、全トラフィックが正常化
結論
- Cloudflareは2回連続した障害の重大性を認め、顧客およびインターネット全体に謝罪
- 今後、デプロイの安全性、許容エラー、レジリエンス強化を通じて同様の事故防止を進める
1件のコメント
Hacker Newsの意見
今回のCloudflare障害は単なるLuaのバグではなく、根本的なアーキテクチャの問題を露呈した出来事だとする意見。 本来の分散型Web構造は、このようなグローバル障害にはるかに強かった。一方、Cloudflareのような同質的な中央集権システムでは、たった一度のミスで世界中のサービスが同時に止まりうる。Rustで書いても人はミスをする。結局重要なのは堅牢な設計だという指摘。
昨夜、複数のサイトでCloudflareの500エラーを見たが、ステータスページには何の言及もなく、予定メンテナンスの告知しかなかったという指摘。
Cloudflareの品質エンジニアリングが開発速度に追いついていないように見えるという意見。昔の防衛産業では品質チームの方が常に熟練していたと聞くが、ソフトウェア業界は逆のようだという話。
インターネットのパケットスイッチング構造は、もともとこのようなグローバル障害に耐えるよう設計されていたという指摘。 冷戦時代のDARPAネットワークには、核攻撃下でも指揮系統を維持する目的があった。 今こそインターネットの**ローカルファースト(local-first)**パラダイムに戻るべきだという意見。
最近のCloudflareはインターネットをより遅く不便にしているように感じるという声。「あなたが人間であることを証明してください」のような手順が増え、ページ読み込みも遅くなっている。 これはサイト保護というより、AIクローリング課金ポリシーのためではないかという見方がある(Pay-per-crawl紹介)
Cloudflareのグローバル設定システムは、段階的ロールアウトなしに数秒でネットワーク全体へ広がる構造なので危険だという指摘。 設定変更がエラーを起こした際、即座に相関を把握できる仕組みが必要だとされる。
Cloudflareの稼働率が99.9%を下回ったという指摘。自宅のPCより悪いレベルだという声もある。
Cloudflareほどの規模なら、必ずテスト環境があるべきだという意見。 すべての変更は隔離されたモデル環境でシミュレーションしたうえで、段階的にデプロイすべきだとされる。 強い型システムより重要なのは、手続き上の安全装置だという主張。
Cloudflareのソフトウェア品質が揺らいでいるように見えるという声。 エンタープライズ専用機能のアクセス検証が最後の段階でしか行われないバグもあったという。
Cloudflareの運用文化が気になるという意見。 セキュリティ問題への対応中にエラーが起きたのに、ロールバックせず再びグローバルデプロイを行ったのは危険な判断だという。 「怪しければロールバックせよ」という基本原則に反しているという指摘。