本文へ移動
情シスのミカタ
ニュース約3分で読めます

GitHubにvirtualenvの脆弱性2件、開発環境の有効化前に確認を

virtualenvの有効化スクリプトに、細工されたパスやプロンプトを通じてコマンドが実行される脆弱性2件が公表されています。いずれも21.14.2で修正済みです。開発端末とCIジョブで確認すべき版、入力条件、回避策を整理します。

公開 情シスのミカタ編集部AIにより執筆チェック済み
文字
GitHubにvirtualenvの脆弱性2件、開発環境の有効化前に確認を

この記事のまとめ

  • virtualenvの有効化処理に脆弱性2件。どちらも21.14.2で修正済みです。
  • 攻撃には、環境のパスやプロンプトに攻撃者が影響を与えられる条件が必要です。
  • 開発端末だけでなく、ブランチ名をパスに使うCIジョブも確認対象です。
こんな方に#20代#30代#40代#50代#60代実務

GitHub Advisory Databaseに、virtualenvの環境を有効化する処理に関する脆弱性2件が掲載されています。細工された環境パスやプロンプトを使うと、有効化時にコマンドなどが実行される恐れがあり、いずれも21.14.2で修正されています。資料では公表日を確認できません。

fish用スクリプトは21.14.1以前が対象

CVE-2026-113732は、コマンドを入力・実行するシェルの一つ、fish向けの有効化スクリプトにある脆弱性です。activate.fishを含む21.14.1以前の全リリースが対象です。

原因は、文字列の引用処理がfishの解釈と合っていないことです。攻撃者が環境パスかプロンプトに影響を与えられる場合、細工された値によって、有効化時にコマンドが実行される恐れがあります。プロンプトは、コマンド入力待ちの際に表示される文字列です。

virtualenvは標準でactivate.fishを生成します。このため、ファイルが存在するかだけでなく、実際にどのシェルで、どのような入力から作った環境を有効化しているかを確認する必要があります。

アドバイザリは、ブランチ名などをパスに使うCIジョブを攻撃経路の例に挙げています。CIは、ビルドやテストなどを自動実行する仕組みです。他者が命名したディレクトリで「--prompt .」を使うことも、攻撃経路になります。回避策は、環境パスやプロンプトにバックスラッシュを含めないことです。

もう1件はbashなどにも影響、引用処理だけでは防げず

CVE-2026-113776は、有効化スクリプトのひな型を処理する部分の脆弱性です。影響する版は20.26.6から21.14.1までです。

原因は、置換した値の中に別の置換項目名があると、その部分を再び置換してしまうことです。引用処理を済ませた後に再置換が起きるため、引用処理だけでは防げないとされています。

攻撃には、作成先パスか「--prompt」の値に影響を与えられることが必要です。bashとfishの有効化スクリプトでコマンド実行が確認されたほか、activate.xshとbin/activate_this.pyでもコード実行が確認されています。fishを使っていないという理由だけで、今回の2件を対象外にはできません。

こちらの回避策は、パスや「--prompt」に「VIRTUAL_NAME」などの置換項目名を含めないことです。日本での提供は発表には書かれていません。

影響する会社・しない会社

  • 影響する: activate.fishを含む21.14.1以前のvirtualenvを利用する会社です。特に、環境パスやプロンプトへ他者の入力が入る運用では、攻撃成立の条件を確認する必要があります。
  • 影響する: 20.26.6から21.14.1までを使う会社です。bashなどを使う開発環境も確認対象です。ブランチ名を環境パスに使うCIジョブや、他者が作成した環境の有効化を優先して点検してください。
  • 影響しない: 21.14.2の修正が反映された有効化処理では、今回の2件は修正済みです。ただし、使用中のvirtualenvの版だけでなく、実際に有効化するスクリプトも確認してください。

情シスが今日やること

  1. 今日の棚卸しで、開発担当者とCI運用担当者にvirtualenvの利用確認を依頼します。開発端末の導入情報とCIジョブの設定ファイルから、使用版、有効化するスクリプト、環境の作成先パスを一覧にしてください。
  2. 次のジョブ実行や環境の有効化前に、パスと「--prompt」の設定元を確認します。ブランチ名や他者が決めたディレクトリ名が入る箇所を特定し、誰がその値を変更できるかを記録します。
  3. 対象版が見つかったら、開発・CI運用の責任者に21.14.2への更新を依頼し、対応期限を決めます。更新時には、実際に使う有効化スクリプトに修正が反映されているかも確認してください。
  4. 更新までの運用では、パスやプロンプトのバックスラッシュと、置換項目名の混入をそれぞれ確認します。2件の回避策は異なるため、片方だけの点検で済ませないよう、担当者にチェック項目を共有します。
  5. 自分で作成していない環境は、有効化前に生成スクリプトを確認します。アドバイザリの推奨として、開発者と外部委託先にもこの確認手順を知らせてください。

出典・参考

このニュースは、公式発表と報道をもとに AI を使って作成し、出典と照らして確かめています。まちがいに気づいたら直し、更新日を改めます。

チェック済み。この記事は監修者によってチェックされました。(2026年10月22日)

執筆

情シスのミカタ編集部AIにより執筆

書いた AI: AI記者(ニュース)

企業・官公庁の公式発表を読み、事実を抜き出してから自分の言葉でニュースを書きます。記事には「影響する会社・しない会社」と「情シスが今日やること」を必ず入れます。書いた記事は別のAIが出典と照らして確かめ、通ったものだけを公開します。公式発表を読めない話題は、2つ以上の報道機関が伝えたものだけを「報道から」として書きます。使っているAI: OpenAI GPT-6.1 Sol。

監修

佐々木 航株式会社Game

代表取締役。工学部出身で、21歳で起業してからシステム会社の経営一筋で8期目。アプリの受託開発から始め、いまはAIを使ったシステムソリューションを手がけています。150社以上の企業とのプロジェクトで培った開発と情報システムの現場の経験と声を形にし、激動の時代を乗り越えたいと考えています。

メモ: 掲載時に自動で(しばらくの間)

記事は AI が書き、機械の検査と別の AI の校閲を通してから公開しています。人が見ているもの・見ていないものはAI の使い方に書いています。まちがいに気づいたら訂正・ご指摘からお知らせください。直したら、記事の最後に何を直したかを書きます。

役に立ったら、いいねと共有をお願いします