Trusted Design

CVE-2023-44487 の詳細

CVEの情報

説明:
The HTTP/2 protocol allows a denial of service (server resource consumption) because request cancellation can reset many streams quickly, as exploited in the wild in August through October 2023.

CVE更新日: 2023-10-10 14:15:10.883000

CVSSバージョン: 3.1

CVSSスコア: 7.5

KEVの情報

KEV更新日: 2023-10-10

EPSSの情報

EPSSは脆弱性が今後30日以内に悪用される確率を予測するスコアリングシステムで、FIRST(Forum of Incident Response and Security Teams)が提供しています。
EPSSのスコアが高いということは、攻撃されるリスクが高いことを意味するので、早めの対策が必要です。

EPSSスコア: 0.999990000

EPSS更新日: 2026-10-16 00:00:00

SSVCの情報

SSVCはカーネギーメロン大学ソフトウェア工学研究所が提案する脆弱性の評価手法です。ステークホルダーごとに脆弱性対応の優先度を決定することを支援します。
本サイトでは、CVE、KEV、EPSSの内容からExploitation(悪用状況)、Technical Impact(技術的影響)、Automatable(自動攻撃の可否)を判定します。

Exploitation: active

Technical Impact: high

Automatable: True

AIを使った解説

解説:

CVE-2023-44487: HTTP/2 Rapid Reset攻撃に関する解説

1. 脆弱性の概要

CVE-2023-44487は、「HTTP/2 Rapid Reset」として知られるHTTP/2プロトコルのサービス拒否(DoS)脆弱性です。この脆弱性は、HTTP/2のストリーム多重化機能の設計上の欠陥を悪用します。攻撃者は、HTTP/2プロトコルにおいて、新しいストリームを要求した直後にリセット(RST_STREAMフレーム)を送信する操作を無制限に繰り返すことで、サーバー側のリソースを枯渇させ、サービス停止を引き起こすことができます。これにより、サーバーは正当なリクエストを処理できなくなります。

HTTP/1.1ではリクエストが順番に処理されるのに対し、HTTP/2では単一のTCP接続で複数のデータストリームを同時に確立・処理できる多重化が可能です。攻撃者はこの特性を悪用し、サーバーからの応答を待たずに大量のリクエストとキャンセルのペアを送りつけることで、同時に開いているストリームの最大数を超過することなく、サーバーに大量の処理負荷をかけます。

1.1 影響

この脆弱性が悪用されると、標的となるWebサーバー、プロキシ、ロードバランサー、APIなどでサービス拒否(DoS)が発生します。 攻撃は記録的な規模に達し、Googleでは過去最大の1秒あたり3億9800万件を超えるリクエストが観測され、2分間でWikipediaの1ヶ月分の閲覧数に匹敵するリクエストが送られたと報告されています。 攻撃自体は非リフレクションかつ非ボリューム攻撃であり、多くが暗号化されているため、従来のネットワークベースのトラフィック監視やDDoS検知システムでは監視しにくいという特徴があります。

1.2 深刻度

CVSSv3.1のベーススコアは7.5(10点満点)で、深刻度は「高(High)」と評価されています。 CISA(米国サイバーセキュリティ・社会基盤安全保障庁)は、この脆弱性が2023年8月から10月にかけて実際に悪用された「ゼロデイ脆弱性」であったことを報告しています。

2. 対象となる環境

HTTP/2プロトコルを実装するすべてのWebサーバー、プロキシ、ロードバランサー、APIが影響を受ける可能性があります。

2.1 影響を受けるOSバージョン

特定のOSバージョンに限定されるものではなく、HTTP/2をサポートするシステム全般に影響があります。

影響を受ける可能性のある主要なコンポーネントとバージョンは以下の通りです。

  • Netty: Netty < 4.1.100.Final
  • Go: Go < 1.21.3、Go < 1.20.10
  • Apache Tomcat:
    • 11.0.0-M1 <= Apache Tomcat <= 11.0.0-M11
    • 10.1.0-M1 <= Apache Tomcat <= 10.1.13
    • 9.0.0-M1 <= Apache Tomcat <= 9.0.80
    • 8.5.0 <= Apache Tomcat <= 8.5.93
  • grpc-go: grpc-go < 1.58.3、grpc-go < 1.57.1、grpc-go < 1.56.3
  • Jetty: Jetty < 12.0.2、Jetty < 10.0.17、Jetty < 11.0.17、Jetty < 9.4.53.v20231009
  • nghttp2: nghttp2 < v1.57.0
  • Apache Traffic Server:
    • 8.0.0 <= Apache Traffic Server <= 8.1.8
    • 9.0.0 <= Apache Traffic Server <= 9.2.2
  • Microsoft IIS (HTTP.sys)、.NET (Kestrel)、および Windows
  • Cisco製品: Cisco IOS XE Software (Web UI機能が有効な場合)、Cisco Expressway (x14.0以降でMobile Remote Access (MRA)が導入されているリリース)
  • Palo Alto Networks PAN-OS: HTTP/2インスペクションが有効な場合、Threat prevention ID 40152 (Applications and Threats content update 8765) でブロック可能。

2.2 影響を受ける設定

  • HTTP/2を有効にしているWebサーバー、プロキシ、ロードバランサー、APIゲートウェイ。
  • Nginx: keepalive_requests および http2_max_concurrent_streams の設定がデフォルト値(それぞれ1000、128)よりも大幅に高い場合。
  • Cisco IOS XE Software: ip http server または ip http secure-server コマンドを使用してWeb UI機能が有効になっている場合。ただし、ip http active-session-modules none が含まれる設定の場合は脆弱性の影響を受けません。

3. 影響を受けた時の兆候

  • サービス拒否(DoS)によるWebサービスの可用性低下。
  • 502 Bad Gatewayエラーの増加。
  • サーバーのCPU使用率が異常に高くなる。
  • サーバーリソースの枯渇。
  • 新しいファイアウォールセッションの断続的な利用不能。

4. 推奨対策

4.1 本対策

  • HTTP/2サーバーへのパッチ適用: ベンダーから提供されているセキュリティパッチやアップデートを可能な限り早く適用することが最も重要です。Microsoftは、IIS (HTTP.sys)、.NET (Kestrel)、およびWindows向けの緩和策を2023年10月10日にセキュリティアップデートとしてリリースしました。
    • Tomcatの修正バージョン: 8.5.94、9.0.81、10.1.14。
    • Nginxのバージョン1.19.7以降はkeepalive_requestsで制限、それ以前はhttp2_max_requestsで制限。
    • Palo Alto Networksは、Threat prevention ID 40152 (Applications and Threats content update 8765) を提供。
  • CDN/WAFプロバイダーの利用: Cloudflare、Google Cloud、AWS、AkamaiなどのインフラストラクチャやCDNプロバイダーは、この脆弱性に対する緩和策を適用しています。これらのプロバイダーを利用している場合は、対策が講じられていることを確認し、必要に応じて構成変更を行うことが推奨されます。
  • Webアプリケーションファイアウォール(WAF)の導入: WAFを導入し、同一クライアントからの大量のリクエストを遮断するレート制限ルールを適用することで、DDoS攻撃に対する追加の保護が期待できます。
  • HTTP/2プロトコルの無効化: 状況が許せば、HTTP/2エンドポイントを完全に無効にして、HTTP/1.1にダウングレードすることで、この脆弱性を回避できます。

4.2 暫定回避策(緩和策)

  • サーバー設定の調整:
    • Nginx: keepalive_requests(デフォルト値1000)と http2_max_concurrent_streams(デフォルト値128)の設定をデフォルト値に保つか、セキュリティとパフォーマンスのバランスを考慮して適切な値に調整します。
    • limit_conn(単一クライアントからの接続数制限)と limit_req(単一クライアントから処理されるリクエスト数制限)の変数を調整することも有効です。
  • ネットワークベースのブロッキング/洪水防御ツール: ネットワークエッジでIPベースのブロッキングや洪水防御ツールを使用して、着信トラフィックをフィルタリングします。
  • HTTP/2ストリームのリセット監視: 接続中のサーバーのリセット数を監視し、しきい値を超えた場合にGOAWAYフレームで接続を閉じる。
  • 最大ストリーム同時実行数の削減: Cloudflareは一時的に最大ストリーム同時実行数を64に削減する対策を実施しました(後に相互運用性の問題から100に変更)。

参照したサイト

NVDサイト

NVDでCVEの詳細を見る

戻る