サイトアイコン 酒呑ガジェット

【衝撃】Cloudflare大規模障害、原因はサイバー攻撃ではなく「自爆」だった!たった1行のコードミスがインターネットを停止させた全貌

【衝撃】Cloudflare大規模障害、原因はサイバー攻撃ではなく「自爆」だった!たった1行のコードミスがインターネットを停止させた全貌

2025年11月18日、世界中のインターネットサービスが数時間にわたりアクセス不能となる大規模障害が発生しました。X(旧Twitter)やChatGPTをはじめとする主要アプリが軒並みダウンし、未曽有の事態となりました。当初サイバー攻撃も疑われましたが、原因は米IT大手Cloudflareの内部システムの問題、まさかの「自爆」だったことが判明しました。

インターネットを襲った悪夢「第3次」

障害は日本時間の20時20分頃から発生し、世界中のウェブサイトやオンラインサービスが「502 Bad Gateway」のエラー画面を表示しました。Cloudflareは世界有数のCDN(コンテンツデリバリーネットワーク)プロバイダーであり、そのサービス停止はインターネット全体の機能不全に直結しました。

原因はサイバー攻撃ではなく「内部の権限変更」

Cloudflareが公開した報告書によると、今回の障害はサイバー攻撃ではなく、あるデータベースシステムの「権限変更」がきっかけでした。この変更が予期せぬ連鎖を引き起こし、ボット管理システムで使用する「フィーチャーファイル」に、誤って大量の重複したエントリーが出力され、ファイルのサイズが突然2倍に膨れ上がりました。この肥大化したファイルがCloudflareのネットワーク全体に配信されたことで問題が発生しました。

「でかすぎて読めない!」ファイルサイズ上限の罠

各マシンでトラフィック処理を行うソフトウェアは、この肥大化したフィーチャーファイルを読み込もうとしましたが、ソフトウェアには読み込めるファイルサイズの上限があり、今回のファイルサイズはそれを超えていました。結果、世界中のサーバー上のソフトウェアが一斉にエラーを起こして機能不全に陥ったのです。Cloudflare側も当初は「超大規模なDDoS攻撃」と勘違いしたといいます。

5分ごとの「ロシアンルーレット」と奇妙な復旧の波

障害発生中、エラー発生量が一時的に回復しては再び悪化するという、波のような変動がありました。これは、裏で動いていたClickHouseデータベースの段階的な更新作業が原因でした。更新された部分だけがバグったファイルを生成する状態だったため、5分ごとに生成されるフィーチャーファイルが「更新済み」の場所で実行されれば障害が発生し、「未更新」の場所で実行されれば正常なファイルが配信されるという「ロシアンルーレット」状態でした。

システム内部の連鎖的被害と皮肉な状況

障害の影響は、外部サービスだけでなくCloudflare自身の内部システムにも及びました。コアCDNとセキュリティサービスのダウン、Turnstile(代替認証システム)のダウンにより、Cloudflareの管理画面にログインできない管理者自身が締め出される事態となりました。さらに、デバッグシステムや監視システムが必死に働きすぎ、CPUを大量消費してサーバー全体の処理を重くし、障害を悪化させる皮肉な状況も発生しました。

技術的な深掘り – SQLクエリの「油断」とRustの「パニック」

根本原因は、データベースへのアクセス権限変更に伴う過去のSQLクエリの「油断」にありました。ボット管理用のファイルを生成するSQLクエリがデータベース名を明示的に指定していなかったため、権限変更後に重複したデータを取り込んでしまいました。この肥大化したファイルを処理するRust言語のコード内にあった「Result::unwrap()」という処理が、エラーを適切に処理せずシステムを強制終了(クラッシュ)させたのです。

再発防止策と今後の教訓

Cloudflareは既に再発防止策に着手しており、設定ファイルの読み込みの厳格化、「グローバルキルスイッチ」の追加、デバッグシステムのリソース制限などを進めています。Cloudflareは今回の障害を「2019年以来最悪の障害」と認め、その重要性を踏まえ深く反省の意を示しています。この苦い経験は、将来のより強靭なインターネットインフラを構築するための貴重な教訓となることでしょう。

ネットの反応

取り上げる情報の速さ、内容の詳しさもさることながら、その上で不必要に動画時間を長くする様な無駄な部分もない。いつも高クオリティな動画に感謝。このチャンネルは伸びます。

マジでMicrosoftにはこの姿勢を見習ってほしいよ

テクニカルな話が詳細にされてて分かりやすかった。これは実に興味深い事例だなぁ。エラー検出をした後にどうトラップするかとか、膨大なログをどうするかとかは日々悩むけど、うちは小規模だしねぇ、であまり真剣に考えない部分だから耳の痛い話でもあるなぁ

難しい内容ですがunwrapでパニックになったのは理解

やっぱり、使える時と使えない時の波があったよね。 不思議だなぁって思ってた。 ほとんど社会インフラに近いようなものが、 一企業に運営されるって大変だね。

大規模なサーバ群にも関わらず、原因解明と回復させたエンジニアはすごいと思う。

まじで世の中がみんな思っているより適当に動いているってわかって貰えるいい機会だと自分は思ったな。 多分この動画みたりしてる人達は同業者が多いと思うけど、その人たちは言ってる意味がよくわかると思う。 結局、動いてるシステムって誰かが手作業で作ってるわけで、自動化とかである程度は防げてもどこか今回のような実装をやっちゃうものなのよねー。

つまり うわ~ん!!ファイルサイズが大き過ぎます!!

とてもいい解説でした。とてもよかったよ

現場猫「ヨシ!」

うわ! デフォ値省略からの重複取得って、めっちゃありがちなバグ…くわばらくわばら。 エラー値の処理方法もイケてないですね。 止まっちゃいけないクリティカルシステムだから、「想定外」のルートも「起きる」前提で軟着陸させないと。

キルスイッチのくだり。宇宙戦艦ヤマト2、地球勤務の真田技官のセリフをふと思い出したわ。

Rust地道に普及し始めてるなぁ。16:28 ここで言う「パニック」は言語仕様にあるpanicの方なんだろう。

このチャンネル絶対伸びるわ

Microsoftにもこのような謙虚さが少しでもあれば・・・。 今回は内部のバグが原因だったが、もしAIが自意識を持って暴走を始めたらと考えると、今回のケースは笑って済まされるようなものではない。AIの暴走を食い止める安全機構は絶対に必要だと思う。

わかりやすいの凄い でも実際プログラムって1行どころか1文字の誤字脱字やらでとんでもない事になったりするから怖い

Rustのunwrapは気軽に使えすぎてしまうのもよくない。 もっと危なそうで長い感じの名前にするべきだった。

色々タイミングが悪かったですねぇ・・・ 陰謀論とかも流れましたし・・・

そんな騒ぎになっていたのに気が付かなかったぜ 一応RimWorldのMODWikiがエラー吐いてたから「ん?」とはなったけど ニコ動見てたから全く影響がなかった… SNSやってないで助かったのか…?

止まっちゃいけないのにunwrap使ったのか

AIの所感

Cloudflareの大規模障害は、現代のデジタルインフラが持つ複雑さと脆さを浮き彫りにする、極めて重要な事例です。たった1行のコードミスや権限変更が、世界中のインターネットサービスを停止させるほどの甚大な影響をもたらすことは、ソフトウェア開発と運用における「想定外」への備えがいかに重要であるかを改めて示しています。特に、インフラを支える基幹システムにおいては、技術的な堅牢さだけでなく、エラーハンドリングの徹底、段階的なデプロイメントの重要性、そしてインシデント発生時の迅速な情報共有と対応能力が、常に試され続けるという厳しい現実を教えてくれます。この苦い経験は、将来のより強靭なインターネットインフラを構築するための貴重な教訓となることでしょう。

モバイルバージョンを終了