ブログ一覧に戻る
脆弱性2026年10月23日4分で読めます

PythonパッケージもBrotli脆弱性(CVE-2026-111497)の影響を受ける

Python packages are also vulnerable to the Node2Shell Brotli flaw (CVE-2026-111497)

脆弱性CVE

この記事のポイント

【なぜ重要か】 Node.jsで発見されたBrotliデコーダーの脆弱性(CVE-2026-111497、通称Node2Shell)は、PythonのPyPIパッケージ「Brotli」および「brotlicffi」にも同様に影響する。月間8,280万ダウンロードを誇るBrotliは、requestsやhttpxなどの主要HTTPクライアントが自動的に利用するため、自分のコードでBrotliを直接イ...

【なぜ重要か】 Node.jsで発見されたBrotliデコーダーの脆弱性(CVE-2026-111497、通称Node2Shell)は、PythonのPyPIパッケージ「Brotli」および「brotlicffi」にも同様に影響する。月間8,280万ダウンロードを誇るBrotliは、requestsやhttpxなどの主要HTTPクライアントが自動的に利用するため、自分のコードでBrotliを直接インポートしていないプロジェクトも影響を受ける可能性がある。CVSSスコアは4.0基準で9.2と高く、メモリ安全性に関わる欠陥であるため、早急な対応が求められる。

【ポイント】

  • 影響バージョンと修正バージョン: Brotli 1.2.0以前(修正版: 1.2.1)、brotlicffi 1.2.0.x(修正版: 1.2.1.0)が対象。修正版はPyPIで入手可能だが、リリースノートにCVEへの言及はない。
  • 脆弱性の仕組み: DecodeBlockTypeAndLength()関数が返す真偽値では「不正なストリーム」と「入力待ち」を区別できず、細工されたBrotliストリームにより境界外書き込み(CWE-787)が発生しうる。
  • 攻撃経路が2つある: ①攻撃者が制御するサーバーへのアウトバウンドHTTPリクエスト(Webhookやクローラー経由など)でBrotli圧縮レスポンスを受け取る場合、②Content-Encoding: brで圧縮されたインバウンドリクエストボディをアプリが処理する場合。
  • 既存スキャンツールでは検出不可: 2026年10月23日時点で、pip-audit・Dependabot・SafetyはいずれもこのCVEをPyPIパッケージにマッピングしていないため、自動スキャンでは検出されない。Aikidoは脆弱バージョンを検出可能。
  • 暫定回避策: アップグレードが直ちに難しい場合は、BrotliおよびbrotlicffiをアンインストールすることでHTTPクライアントがgzip/deflateにフォールバックする。リバースプロキシでAccept-Encoding: brを除去・Content-Encoding: brを拒否する方法もあるが、悪意あるサーバーはリクエストヘッダーに関わらずBrotliレスポンスを返せるため、アウトバウンド通信に対しては完全な保護にならない。

【まとめ】 Pythonを利用しているすべての環境(ラップトップ・CIランナー・サーバー・コンテナ)で、pip show Brotli brotlicffiによるバージョン確認とpip install -Uによる即時アップグレードを実施し、コンテナイメージも再ビルドすること。自動スキャンツールでは現時点で検出されないため、手動での確認が必須。

原文を読む

Aikido Security Blog

英語で詳細な技術情報を確認

原文を読む

コメント・質問

この記事についてのコメントや質問を投稿できます

コメントを投稿するにはログインが必要です

ログインする

読み込み中...