Cloudflareゼロデイ脆弱性の概要
CloudflareのWeb Application Firewall (WAF) に重大なゼロデイ脆弱性が発見されました。これにより、攻撃者はセキュリティ制御を回避し、保護されたオリジンサーバーへ直接アクセスできるようになりました。
セキュリティ研究機関FearsOffが2025年10月9日に発見したこの脆弱性は、特定の証明書検証パスを標的とすることで、顧客が設定したWAFルールを完全に迂回できるというものです。
証明書検証における隠れたバックドア
この脆弱性は、SSL/TLS証明書の自動発行を担うACME (Automatic Certificate Management Environment) プロトコルで使用されるパスを悪用していました。ACMEは、ドメイン所有権を検証するために特定のURLパターン /.well-known/acme-challenge/{token} を使用します。
Cloudflareのエッジネットワークには、このACMEチャレンジパスへのリクエスト処理方法にロジック上の欠陥がありました。/.well-known/acme-challenge/* をターゲットとするリクエストがWAFを無効化する際に、そのリクエストのトークンが実際にホストのアクティブなチャレンジと一致するかどうかを確認していませんでした。これにより、攻撃者は任意のACMEパスにリクエストを送信し、WAF保護を完全にバイパスしてオリジンサーバーに直接到達することが可能でした。
脆弱性の深刻な影響
FearsOffの研究者は、このバイパスの深刻さを実証するためにデモンストレーション環境を構築しました。通常のリクエストではCloudflareのブロックページが返されるにもかかわらず、ACMEチャレンジパスを標的とした同一のリクエストは、すべてのセキュリティ制御を迂回してオリジンサーバーから直接応答を受け取りました。
影響を受けたアプリケーションの例:
- Spring Bootアプリケーション: サーブレットパストラバーサル技術 (例:
..;/) を利用して、環境変数、データベース認証情報、APIトークンなどを公開する機密性の高いアクチュエーターエンドポイント (例:/actuator/env) へのアクセスが可能に。 - Next.jsアプリケーション: サーバーサイドレンダリングのロジックが、公開されることを意図していない運用上の詳細情報を露呈。
- PHPアプリケーション: ローカルファイルインクルージョン (LFI) の脆弱性を持つアプリケーションで、
/etc/hostsのようなシステムファイルの読み取りが可能に。
アカウントレベルのWAFルールも無視される事態
この問題はフレームワークのエラーページに限定されず、アカウントレベルで設定されたWAFルールさえも影響を受けました。例えば、特定のヘッダー (X-middleware-subrequest) を含むリクエストをブロックするよう設定されたルールは、通常のパスでは正しく機能しました。しかし、ACMEチャレンジパスを標的とした同一のリクエストは、評価されることなく通過してしまいました。
これは、ヘッダーベースの攻撃(SQLインジェクション、X-Forwarded-Hostを介したサーバーサイドリクエストフォージェリ、キャッシュポイズニング、HTTPメソッドオーバーライドなど)の全種が、脆弱なオリジンに到達できることを意味していました。
Cloudflareによる対応と今後の教訓
Cloudflareは、2025年10月27日に恒久的な修正プログラムを展開しました。この修正により、ACMEチャレンジロジックは、リクエストトークンが有効でアクティブなチャレンジに一致する場合にのみWAF機能を無効化するように変更されました。
脆弱性の開示タイムラインは責任あるもので、HackerOneを通じて10月9日に報告され、10月27日には修正が完了しました。Cloudflareは、顧客側での対応は不要であり、悪意のある悪用の証拠は見つかっていないと確認しています。このバグは、自動化を意図したメンテナンスパスが、異なるコードパス間でセキュリティ制御が一貫して適用されない場合に、いかに危険な攻撃ベクトルとなり得るかを浮き彫りにしました。
元記事: https://gbhackers.com/cloudflare-zero-day-flaw-bypass-security/
