Cloudflareを要求スマグリングとキャッシュポイズニング攻撃にさらすPingora重大脆弱性

Cloudflareは、攻撃者がエッジプロキシを通じてHTTP要求をスマグリングし、キャッシュをポイズニングできる複数のPingora バグにパッチを適用しました。これにより、データ露出、テナント間のリーク、悪質なコンテンツの大規模配信が可能になります。

2025年5月、CloudflareはCVE-2025-4366を開示しました。これはPingoraのプロキシ層のHTTP/1.1要求スマグリングの高度な重大度の欠陥で、キャッシュヒット時のキャッシュポイズニングを直接可能にしました。

このバグは、Pingoraが接続を再利用する前に受け取ったHTTP/1.1要求ボディを完全にドレインせずにキャッシュレスポンスを提供することに起因し、攻撃者が制御するバイトがバッファに残され、別の要求として誤解析されました。

セキュリティ研究者は、単一の細工された要求が「スマグリングされた」後続の要求を注入し、攻撃者がオリジンが見るヘッダーとURLを操作し、キャッシュされるものに影響を与えることができることを示しました。

実践的には、これは攻撃者が偽造されたHostヘッダーまたはパスに基づいてダウンストリームサーバーに応答させることができ、その後そのレスポンスを保存し、後で無意識のユーザーに正当なコンテンツのように提供することを意味しました。

Cloudflareの独自の調査により、一部のオリジンがこれらの書き直されたHostヘッダーにリダイレクトで応答し、バグを信頼できるキャッシュポイズニングおよびトラフィックリダイレクションプリミティブに変えることが確認されました。

その最初の開示以来、2つの追加のPingora問題が、キャッシュヒット上の単純なスマグリングを超えてリスクプロフィールを押し上げました。

この非同期を悪用することで、攻撃者はIPベースのACLをバイパスし、スマグリングされた要求を被害者の要求と組み合わせることでセッションをハイジャックでき、再びキャッシュをポイズニングしてユーザーが攻撃者制御のレスポンスを受け取ります。

別に、CVE-2026-2836はPingoraのデフォルトキャッシュキー構造を対象とし、URIパスのみに依存し、Host/authorityコンポーネントを無視しました。

マルチテナントまたはマルチオリジン展開では、この欠陥のある設計により、1つのオリジンからのレスポンスをキャッシュして別のオリジンに提供でき、クロステナントデータリークと同じパス構造を共有する無関係なサイト全体での広範なキャッシュポイズニングが可能になります。

攻撃者はこれを悪用してフィッシングページをプッシュし、マルウェアペイロード、またはクロスオリジンデータをキャッシュに投入でき、ここで他のユーザーに透過的に配信されます。

Cloudflareは、曖昧なメッセージ長の無害化と健全なTransfer-Encoding使用の強制を含む厳密なイングレス動作により、その主要CDNインフラストラクチャが一部のこれらの欠陥から保護されていたと述べていますが、Pingoraオープンソース採用者がデフォルト設定でキャッシュを有効にすると直接さらされると警告しています。

同社は2025年4月に影響を受けたPingoraコンポーネントを無効化し、修正を出荷し、トラフィック再開前に潜在的なポイズニングを中和するためにキャッシュされたアセットを無効化しました。

緩和策は、厳密なHTTPセマンティクスとより安全なキャッシュ設計に焦点を当てています。Pingora 0.5.0以降は、接続が再利用される前のHTTP/1.1要求ボディの必須ドレインを導入し、CVE-2025-4366の背後にあるオリジナルスマグリングベクトルを閉じています。

より最近のリリース(0.8.0以上)は、CVE-2026-2835を解決するためにRFC 9112に従ってメッセージ長解析を強化し、HTTPボディが決してクローズデリミテッドとして扱われないことを保証し、矛盾するTransfer-Encodingシーケンスが拒否されます。

弱いキーを介したキャッシュポイズニングについて、オペレーターはPingoraのデフォルトキャッシュキーをオーバーライドしてホスト/権限と関連ヘッダーを含めるか、より安全なデフォルトを提供するバージョンにアップグレードするよう促されています。

Pingoraを組み込む組織にとって、セキュリティの重要なポイントは明らかです。エッジプロキシとキャッシュレイヤーを重大な攻撃面の一部として扱い、最新のPingoraバージョン(≥0.8.0)を強制し、マルチテナント環境でキャッシュキー構成を検証します。

要求スマグリングとキャッシュポイズニングのルーチンテストは、CIセキュリティチェックの一部になるべきであり、特にHTTP/1.1キープアライブと共有キャッシュが交差する場所です。

翻訳元: https://cyberpress.org/pingora-vulnerabilities/

ソース: cyberpress.org