
CVE-2026-77680の防御的解説:libsoupのHTTP Rangeにおけるアルゴリズム複雑性DoS。CVSS評価の内訳、キルチェーンマッピング、検出および修復のガイダンス。
評価: 中程度の深刻度 · CVSS v3.1: 5.3 · 主な影響: 可用性 (CPU 枯渇 / サービス拒否)
このリポジトリは、libsoup の HTTP Range ヘッダー処理におけるアルゴリズム複雑性の欠陥である CVE-2026-77680 について、技術的な挙動、リスク、緩和策、およびサイバーキルチェーンへのマッピングを文書化したものです。
CVE-2026-77680 は、libsoup の HTTP Range 統合ロジックにおけるサービス拒否 (DoS) 脆弱性です。影響を受けるバージョンでは、多数の繰り返された、満たすことのできるバイト範囲を処理すると、二次関数的な処理量が発生する可能性があります。この問題は、以前の CVE-2025-32907 の修正後も残存しています。統合コードが依然として配列要素を個別に削除しており、削除のたびに残りの要素がメモリ内で移動する可能性があるためです。
リモートの未認証の攻撃者が、影響を受ける SoupServer の経路を使用するサーバーアプリケーションに細工された HTTP リクエストを送信する可能性があります。脆弱な条件下では、リクエスト処理が不釣り合いな CPU 時間を消費し、他のリクエストを遅延させる可能性があります。報告されている影響は可用性のみであり、この問題はメモリ破壊や情報漏えいとして記述されていません。
上流の修正では、繰り返しの要素削除をインプレースの線形時間圧縮に置き換え、200 を超える範囲を要求する Range ヘッダーを拒否します。運用担当者は、境界防御の回避策だけに頼るのではなく、適切なベンダーのセキュリティ更新をインストールすべきです。
| 項目 | 詳細 |
|---|---|
| CVE | CVE-2026-77680 |
| コンポーネント | GNOME libsoup (HTTP ライブラリ) |
| 弱点 | CWE-407 — 非効率的なアルゴリズム複雑性 |
| 深刻度 | 中程度 |
| CVSS v3.1 | 5.3 |
| CVSS ベクター | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
| 攻撃の前提条件 | 影響を受けるサービスへのネットワークアクセス。認証やユーザー操作は不要 |
| 主な影響 | CPU 枯渇およびサービスの可用性低下 |
| 関連する問題 | CVE-2025-32907 |
| 上流の修正 | GNOME libsoup マージリクエスト !550 |
HTTP バイト範囲リクエストにより、クライアントはリソースの選択された部分を要求できます。脆弱なコード経路では、libsoup が重複または重なり合う範囲を統合します。連続した GArray の中央から要素を削除すると、残りの要素をシフトする必要が生じる場合があります。多数の範囲を処理する際にこの操作を繰り返すと、線形の処理量ではなく O(n²) の処理量が発生する可能性があります。
報告されているサーバー側の経路には、libsoup/server/http1/soup-server-message-io-http1.c の handle_partial_get() が含まれ、範囲の解析/統合は libsoup/soup-message-headers.c の soup_message_headers_get_ranges_internal() で行われます。この問題は、アプリケーションが影響を受けるサーバー経路を使用し、空でないボディを持つ適切なレスポンスを返す場合に関係します。
範囲の数は、十分に低い範囲数上限ではなく、リクエストヘッダーの制限によって制約される可能性があります。その結果、単一のリクエストが過剰な処理を引き起こす可能性があり、繰り返しのリクエストによって可用性への影響が増幅される可能性があります。正確な影響は、デプロイされたバージョン、リクエスト制限、アプリケーションの挙動、およびサーバーの容量に依存します。
公開されている CVSS v3.1 スコアは 5.3 (中程度) です。
中程度の基本スコアは、この問題を無視してよいという意味ではありません。インターネットへの露出、共有インフラストラクチャ、および繰り返しのリクエストにより、サービスの可用性は運用上重要になる可能性があります。
libsoup の存在だけから脆弱性を推測してはならない。特定のパッケージビルドと修正が適用されているかどうかを確認すること。
Lockheed Martin のサイバーキルチェーンは侵入志向のモデルである。このマッピングでは、その各段階をサービス拒否シナリオに適応させている。すべての段階がこの脆弱性にとって個別または必須のステップを表すわけではない。
| 段階 | このシナリオで考えられる活動 | 防御の機会 |
|---|---|---|
| 1. 偵察 | 到達可能なアプリケーションを特定し、その HTTP スタックや挙動を推測する。 | 不要な露出を減らす。資産とソフトウェアのインベントリを維持する。不要なバージョン情報の開示を避ける。 |
| 2. 兵器化 | 過剰な数の重複またはオーバーラップする Range 値を含む HTTP リクエストを準備する。 | ライブラリにパッチを適用する。Range の数を検証して上限を設ける。安全なリクエスト解析の制限を適用する。 |
| 3. 配送 | 細工したリクエストを公開されたサービスに送信する。 | ネットワーク制御、リバースプロキシの保護、接続制限、リクエストレート制御を使用する。 |
| 4. 悪用 | 脆弱なサーバーパスで高コストな Range の結合処理を引き起こす。 | ベンダー/アップストリームの修正を展開する。高コストな処理の前に過剰な Range を拒否する。 |
| 5. インストール | 通常は該当しない。これはリソース枯渇の欠陥であり、それ自体がマルウェアをインストールするものではない。 | 後続の活動を監視する。サービスの中断がホストの侵害を意味すると仮定しない。 |
| 6. コマンドアンドコントロール | 基本的な DoS 動作には不要である。ボットネットやリモートコントローラーを使って繰り返しトラフィックを調整することは可能だが、それはこの CVE に本質的なものではない。 | 送信元をまたいでトラフィックを相関分析する。適切な場合には上流の DDoS 対策を適用する。 |
| 7. 目的に対する行動 | 応答時間を低下させ、正当なユーザーのサービスアクセスを拒否する。 | 可用性と CPU を監視する。ログを保全する。インシデント対応および復旧手順を適用する。 |
主な結果はサービスの劣化またはサービス拒否であり、コード実行ではない。この区別はトリアージにおいて重要である。可用性の制御とパッチ適用を優先しつつ、別個の侵害指標がないかログとテレメトリも確認すること。
これらの制御は露出を減らすが、修正のインストールに代わるものではない。
環境にデプロイされている正確なオペレーティングシステムとパッケージビルドについては、ベンダーのアドバイザリを参照してください。
本文書は、公開されている脆弱性アドバイザリおよびアップストリームの参考情報に基づく防御的なセキュリティ分析です。エクスプロイトや概念実証ではありません。製品の適用可否およびパッチ適用状況は、対象環境における正確なソフトウェアビルドとベンダーアドバイザリに照らして確認する必要があります。
脆弱性管理、脅威分析、防御的セキュリティ学習のために作成。