Node.js以外も、組み込まれたBrotliを確認する

Brotliはデータを圧縮・展開するためのライブラリです。JPCERT/CCの10月26日の注意喚起は、BrotliのC言語実装にある脆弱性 CVE-2026-111497 を説明しています。影響を受けるアプリケーションが細工された圧縮データを展開すると、異常終了、メモリ上の情報の漏えい、不正なプログラムの実行につながる可能性があります。

当初はNode.jsに関連して「Node2Shell」と呼ばれていましたが、原因はNode.jsだけに固有のものではありません。JPCERT/CCの「II. 対象」は、影響を受ける製品として Node.js、Bun、Python向けBrotliパッケージなどを挙げています。この一覧だけで対象製品を網羅したとは扱わず、製品ごとの版と対応状況を確認してください。

Node.jsの10月21日の公式情報も、組み込まれたBrotliの展開処理と、アプリケーションが受け取る圧縮データとの関係を説明しています。Node.jsの更新が済んでも、別の製品に含まれるBrotliまで修正されたとは限りません。

一方で、「Webサイトがある」「HTTP通信を使う」というだけで対象とは判断できません。利用製品、版、Brotli形式のデータを展開する処理の有無を、管理者と開発元の情報で照合することが出発点です。

ライブラリの版と、製品の修正版を取り違えない

10月27日に確認したJPCERT/CCの対象範囲は次のとおりです。これはBrotli自体の版であり、Node.jsやBunなどの製品の版番号ではありません。

Brotliの系列 注意喚起に記載された対象範囲
1.2系 v1.2.0からv1.2.1より前
1.1系 v1.1.0からv1.1.1より前
1.0系 v1.0.3からv1.0.10より前

Googleのv1.2.1のリリースには、この脆弱性の修正が記載されています。ただし、利用者がBrotli単体を更新すれば、組み込む製品も更新されるとは限りません。製品の開発元・配布元が提供する修正、適用方法、適用後の確認方法を保守先へ聞いてください。

JPCERT/CCの「III. 対策」は修正済みバージョンの適用前に十分なテストを行うことと、組み込み製品は各開発者の最新情報を確認することを案内しています。「IV. 緩和策」ではGoogleから緩和策は提供されていないとし、製品別の緩和策は各開発者の情報を確認するよう求めています。共通の設定変更だけで対処できるとは考えず、更新が難しい場合も保守先へ相談します。

まず製品と窓口を一覧にする

総務や業務担当者は、契約書、導入資料、既存の管理台帳から確認先を探します。技術的な利用状況は、推測せず管理者に確認してください。

確認項目 開発元・保守先に聞くこと
製品と利用場所 製品名、提供元、稼働中の版、対象となるサイト・業務ツールは何か
対象かどうか Brotliの今回の脆弱性の影響を受けるか。判断の根拠となる公式案内と、構成・処理の条件は何か
製品側の対応状況 修正が提供されているか。利用環境への適用は済んでいるか、予定段階か
更新の分担 誰が更新し、適用結果と主要な動作を誰が確認するか。停止や復旧の準備は必要か
侵害調査の分担 誰に調査を依頼できるか。記録の保全、調査の範囲・費用・回答予定はどうなるか

利用者が更新できないサービスでも、提供元へ対象と対応状況を確認します。「最新版」「対応済み」という回答は、どの製品・環境・修正を指すかまで聞いてください。回答がない項目は「対象外」にせず、未確認として担当と回答期限を残します。

開発元・保守先への問い合わせ文例

対象の製品名や利用場所を置き換えて使える文例です。認証情報やログは添付せず、必要な資料の共有方法を先に相談してください。

件名:Brotliの脆弱性に関する対象確認と対応状況の確認

当社で利用する製品(製品名・利用場所)について、JPCERT/CCが2026年10月26日に注意喚起したCVE-2026-111497の影響を確認したく、ご連絡しました。

  1. 利用中の製品名・版と、今回の脆弱性の対象かどうかを教えてください。判断の根拠となる開発元の案内も確認したいです。
  2. 修正の提供・適用状況はどうなっていますか。適用済みなら対象環境と適用日時、未適用なら担当と予定を教えてください。
  3. 更新前の準備と、更新後の主要な動作確認は誰が担当しますか。すぐに更新できない場合は、開発元が案内する対処と限界、利用制限の要否を教えてください。
  4. 更新とは別に、侵害の有無の調査を依頼できますか。記録の保全、調査担当・範囲・費用・回答予定を教えてください。契約範囲外なら相談先を案内いただけますか。

未確認の項目は、その内容と回答予定をお知らせください。

更新・動作確認・侵害調査を別々に記録する

JPCERT/CCは、影響を受ける製品を利用している場合、速やかな対策の適用と侵害有無の調査を求めています。更新が済み、普段どおり動くことは、過去に侵害されていないことの証明にはなりません。 反対に、対象製品を利用しているだけで侵害されたとも断定できません。

社内の記録は、次の3つに分けると確認の抜けを伝えやすくなります。これは分担を整理するための提案です。

  • 修正の適用: 対象製品・環境、開発元の案内、適用日時、適用結果、未対応の範囲、担当者。
  • 更新後の動作: 確認した主要な画面・操作、実施日時、結果、不具合と対応担当。注文・送信などを伴う確認は、保守先と安全な方法を決めます。
  • 侵害調査: 調査担当、対象と期間、確認できた資料、結果、確認できなかった範囲、追加対応の要否。

更新を調査完了まで待つのではなく、保守先と調査担当が記録の保全と更新の進め方を調整します。記録が不足している期間は未確認のまま残し、「痕跡が見つからない」という報告を、調べられなかった範囲まで広げないようにします。自己判断でログを削除したり初期化したりせず、侵害が疑われる場合は責任者と専門担当者へ引き継いでください。

担当が別なら、社内で回答を取りまとめる人を決めます。利用継続・制限・停止の判断が必要なときは、未確認事項、保守先の推奨、止まる業務、代替手段を責任者へ渡してください。

記録の分け方はVPNの更新と侵害調査、サイトの制作会社とサーバー会社への確認はPHPの利用と修正の確認も参考になります。それぞれ別の脆弱性を扱う記事であり、Brotliへの対応が済めばPHPやVPNも対応済みになるわけではありません。

よくある質問

Q. Node.jsを使っていなければ、今回の確認は不要ですか? そうとは言えません。Brotliを組み込むほかの製品にも影響します。利用する製品の開発元・保守先へ、対象と対応状況を確認してください。

Q. Webサイトが普通に表示されていれば、対象外ですか? 表示だけでは判断できません。製品・版・利用する処理を開発元の最新情報と照合します。すべてのWebサイトが対象という意味でもありません。

Q. 更新完了の連絡を受けたら、確認は終わりですか? 適用対象と動作確認を確かめ、侵害調査の担当・範囲・結果を別に確認します。未確認事項が残る場合は、回答予定と責任者への引き継ぎを明確にしてください。