Cloudflare Pingoraの欠陥がリクエストスマグリングとキャッシュポイゾニング攻撃を可能にする

最近のセキュリティアドバイザリーで、CloudflareはオープンソースのPingoraフレームワークに複数のHTTPリクエストスマグリングおよびキャッシュポイゾニング脆弱性があることを開示しました。

CVE-2026-2833CVE-2026-2835CVE-2026-2836の識別子で追跡されるこれらの欠陥は、インターネットに直接公開されイングレスプロキシとして機能するスタンドアロンのPingoraデプロイメントに特に影響します。

Cloudflareは、独自のコンテンツデリバリーネットワークと顧客トラフィックが完全に安全であることを明確に確認しています。

CloudflareがそのエッジネットワークでイングレスプロキシとしてPingoraを使用していないため、これらの脆弱性は内部インフラストラクチャに対して悪用されることはありません。

リクエストスマグリング脆弱性がどのように機能するか

リクエストスマグリングは、フロントエンドプロキシサーバーとバックエンドアプリケーションサーバーが、単一のHTTPリクエストが終了する場所と新しいリクエストが始まる場所についての解釈が異なるときに発生します。

この解釈の違いにより、攻撃者は悪意のあるリクエストを通常のリクエスト内に隠すことができます。プロキシがデータを転送するとき、バックエンドは隠されたリクエストを次の気づかないユーザーに属するかのように処理します。

Image

セキュリティ研究者のRajat Raghavは、Pingoraでこれらの深刻なデシンクロナイゼーション攻撃をトリガーするための3つの異なる方法を発見しました:

早急なプロトコルアップグレード

攻撃者がHTTP「Upgrade」ヘッダーを送信したとき、Pingoraはすぐに直接パススルーモードに切り替わりました。

これはバックエンドサーバーが「101 Switching Protocols」応答でアップグレードを公式に受け入れる前に行われました。

攻撃者は、アップグレードリクエストの直後に2番目の悪意のあるHTTPリクエストをパイプライン化することにより、この早急なアクションを悪用することができます。

Pingoraはこのスマグリングされたリクエストをバックエンドに盲目的に転送し、重要なアクセス制御とセキュリティチェックをバイパスしました。

HTTP/1.0フレーミングの誤解釈

Pingoraは、「Content-Length」と「Transfer-Encoding」の両方など、競合するヘッダーを含む古いHTTP/1.0リクエストを処理するときに危険な寛容性を示しました。

厳しいインターネット標準で必要とされているこれらの不正な形式のリクエストを安全に拒否する代わりに、Pingoraはリクエストボディを接続閉鎖で区切られたものとして扱いました。

このフロー解釈により、攻撃者はリクエストの終わりに部分的なHTTPヘッダーを追加でき、バックエンドサーバーとの深刻なデシンクロナイゼーションを引き起こしました。

安全でないデフォルトキャッシュキー

3番目の脆弱性はPingoraがユーザーのためのキャッシュされたデータを保存する方法に関わるものでした。キャッシュキーを作成するためのデフォルトコード実装は、Webサイトホストとプロトコルスキームを無視して、URLパスのみを見ました。

このうっかりのため、同じパスを使用する異なるWebサイトがプロキシキャッシュで衝突する可能性があります。

攻撃者はこれを利用してキャッシュをポイゾニングでき、正規のサイトへの訪問者が代わりに悪意のあるまたは変更されたコンテンツを受け取ることを確認できます。

Image

悪用の影響

フロントラインリバースプロキシとしてスタンドアロンPingoraデプロイメントを使用する組織は、これらの欠陥がパッチされないままになっている場合、深刻なリスクに直面しています。成功した悪用により、攻撃者は以下のことを行うことができます:

  • カスタムルールおよびWebアプリケーションファイアウォールを含むプロキシレイヤーセキュリティコントロールをバイパスします。
  • プロキシと共有バックエンド間のリクエストをデシンクロナイズすることにより、アクティブユーザーセッションをハイジャックし、機密の認証情報を盗みます。
  • プロキシキャッシュをポイゾニングし、サーバーに悪意のあるペイロードを通常のユーザーに配布させます。

Cloudflareエンジニアリングは迅速にバグバウンティレポートを調査し、包括的な修正を導入しました。

フレームワークは、リクエストフレーミング用のインターネット標準を厳しく適用し、チャンク化されたエンコーディングを適切に検証し、接続をアップグレードする前にバックエンド確認を待ちます。安全でないデフォルトキャッシュキーも完全に削除されました。

Pingoraデプロイメントを管理するセキュリティチームは、直ちに行動を取るべきです:

  • すべてのPingoraフレームワークインスタンスをバージョン0.8.0にすぐにアップグレードします。
  • キャッシュポイゾニング衝突を防ぐため、カスタムキャッシュキー設計にホストヘッダーとHTTPスキームが含まれていることを確認します。
  • 異常なHTTP/1.0リクエストまたは予期しないアップグレードヘッダーのイングレスプロキシログを監視します。

翻訳元: https://gbhackers.com/cloudflare-pingora-flaws/

ソース: gbhackers.com