本文へ移動
LIFEMAKERS.COM — 自立型ライフの実践知カタログ
ベータ版
Signal解説・分析テクノロジーと道具FUTURE LIFE BRIEF

Brotliに遠隔コード実行の穴、最後の更新は使う側に

OpenAIが攻撃演習の中で見つけた圧縮ライブラリBrotliの脆弱性は、ログインなしで外からコードを実行できる。修正版は出たが、組み込んだアプリの更新と再起動を最後に当てるのは使う側だ。

Brotliに遠隔コード実行の穴、最後の更新は使う側にのイメージ

この記事でわかること

  • OpenAIが攻撃演習の途中で、圧縮ライブラリBrotliにログイン不要の遠隔コード実行の脆弱性を見つけ、10月21日に修正版が出た
  • 原因は2月にソース上で直っていたが、穴と知られず正式版がなかった。Node.js・Bun・Envoyなども修正版を公開した
  • Brotliは他のソフトに埋め込まれて動くため、アプリの更新と再起動を最後に当てるのは利用者になる

OpenAIは10月24日(日本時間)、自社の研究用の学習環境で行った攻撃演習(レッドチーミング)の途中で、圧縮ライブラリ「Brotli」に、ログインなしで外部からコードを実行できる脆弱性を見つけたと公表した。BrotliはNode.jsやBun、Envoyなど多くのソフトに組み込まれており、開発元は10月21日に修正版を出し、識別番号CVE-2026-111497を付けて公表している。

修正はもう出ている。ただ、Brotliは単体で使うものではなく、ほかのソフトの中に埋め込まれて動く。直ったBrotliが手元に届くまでには、組み込んだソフトの更新と、そのソフトを使う人の更新という2つの段がある。

細工した圧縮データ1つで、乗っ取りまで届く

Brotliは、通信やファイルを小さくするための圧縮形式と、その読み書きをする部品だ。OpenAIの説明では、細工した圧縮データを送りつける、あるいは返すだけで、攻撃者は影響を受けたシステムの上で自分のコードを動かせる。アカウントを作る必要もない。圧縮された入力を受け付ける未更新のサーバーは悪意あるクライアントに、圧縮された応答を受け取る未更新のクライアントは悪意あるサーバーに、それぞれ乗っ取られうる。

Node.jsの10月21日のセキュリティ情報は、深刻度を「高」とし、仕組みを説明している。不正な圧縮データを受けた解読処理が、内部の8バイトのバッファの外へ書き込みを続けてしまう。結果はプロセスの停止、メモリの中身の漏えい、遠隔からのコード実行のいずれにもなりうる。対象はNode.jsの22.x、24.x、26.xの各系列だ。

2月に直っていたのに、穴と分かっていなかった

OpenAIによると、原因そのものは2月の時点でBrotliのソースコード上で修正されていた。ただ当時はそれがセキュリティ上の穴だとは知られておらず、その後Brotliの新しいリリースも出ていなかった。直したコードはあっても、それを含む正式版がなかったため、組み込む側には取り込むきっかけがなかった。

OpenAIはBrotliとNode.jsなどの組み込み先に連絡し、Brotliは1.0.10、1.1.1、1.2.1の修正版を出した。OpenAIの取り組み「Patch the Planet」の解説ページには、主なソフトの修正版が並ぶ。

  • Node.js: 22.23.4 / 24.22.1 / 26.12.1
  • Bun: 1.4.4
  • Envoy Proxy: 1.40.0 / 1.39.3 / 1.38.6 / 1.37.8
  • Istio: 1.29.9 / 1.30.6 / 1.31.2

Node.jsのセキュリティ情報には、報告者としてOpenAIのCodex Securityの2人の名前がある。自社の学習環境の守りを固める演習が、外の部品の穴まで拾った形だ。

最後の更新は、使う側の手元に

OpenAIは、Brotliを含むソフトはすべて更新を取り込む必要があり、その後にそのソフトの利用者が更新する番が来ると書いている。個人の手元で関わりうるのは、次のような場所だ。

  • デスクトップアプリ: Patch the Planetは、Electronで作られたデスクトップアプリがBrotliを複数抱えている場合があるとし、内蔵のChromium部分が直っても、同じアプリの中のNode.jsが直ったとは限らないと注意している
  • 自分で動かすサーバーや自動化: 自宅や小さな仕事でNode.jsやBunのサーバー・ツールを動かしているなら、実行環境を修正版に上げ、再起動まで済ませる。同じページは、古い版で動いているサービスや定期実行の処理をすべて再起動・再配備するよう求めている
  • 通信以外の入り口: curlやPython・Javaの部品、フォントや圧縮ファイルを読み込む処理も確認先に挙がっており、影響は通信だけに限らないとされる

手間と限界もある。アプリの中にBrotliが入っているかどうかは、利用者からはまず見えない。修正を取り込むのはアプリの開発元で、利用者にできるのは届いた更新を当てることだ。Node.jsは、サポートが終わった古い系列はセキュリティ更新のたびに常に影響を受けるとしており、古い版にとどまる環境には修正が届かない。一方でPatch the Planetは、Brotliを送信側の圧縮にだけ使っているなら、それだけで今回の穴にさらされるわけではないとも書いている。

次に確かめる先は、Patch the PlanetのBrotliのページだ。10月23日付で更新されており、修正版の一覧と、すぐに更新できない場合にBrotliの解読だけを止める手順が載っている。手元のアプリについては、これから届く更新の履歴(リリースノート)にCVE-2026-111497かBrotliの名前が出るかが手がかりになる。

ことば

  • Brotli — Googleが公開している圧縮形式と、その読み書きをする部品(ライブラリ)。通信やファイルを小さくするために多くのソフトへ組み込まれている。今回の穴は、圧縮されたデータを元に戻す解読側にあった。
  • 遠隔コード実行(RCE) — 離れた場所の攻撃者が、相手の機械の上で好きなプログラムを動かせてしまう状態。今回はログインもアカウント作成も要らず、細工した圧縮データを届けるだけで起こりうるとされ、深刻度が高く扱われた。
  • レッドチーミング — 守る側があえて攻撃者の立場に立ち、自分たちの仕組みの弱点を探す演習。OpenAIは研究用の学習環境の守りを固める作業の中でこれを行い、その途中で外部の部品であるBrotliの穴も見つけた。

穴をふさぐ部品は、もう出ている。あなたの手元で、まだ古いBrotliを抱えたまま動いているものは、どれだろうか?

参照

あなたの暮らしで、最初に試せることは何でしょうか。