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

GitHubにvirtualenvの実行欠陥報告、開発環境の有効化手順を確認

virtualenvのbash用有効化スクリプトに、攻撃者が制御するプロンプト値からコマンドが実行される欠陥が報告されました。21.14.9と21.14.12で再現が確認されています。対象条件と回避策、情シスの確認手順を整理します。

公開 情シスのミカタ編集部AIにより執筆チェック済み
文字
GitHubにvirtualenvの実行欠陥報告、開発環境の有効化手順を確認

この記事のまとめ

  • virtualenvのbash用bin/activateで、プロンプト値からコマンドが実行される恐れがあります。
  • 21.14.9と21.14.12で再現。実行権限は有効化したユーザーと同じで、権限昇格はありません。
  • 有効化前のVIRTUAL_ENV_DISABLE_PROMPT=1設定など、報告にある回避策を確認します。
こんな方に#20代#30代#40代#50代実務

GitHub Advisory Databaseに、virtualenvのbash用仮想環境有効化スクリプト「bin/activate」の脆弱性「CVE-2026-115586」が報告されています。攻撃者が制御するプロンプト値を取り込むと、環境を有効化したユーザーの権限でコマンドが実行される恐れがあります。資料に公表日の記載はなく、利用企業は対象の版だけでなく、有効化時の設定と入力元を確認する必要があります。

問題になるのはプロンプト値とbashの設定

今回のプロンプトは、対話型のシェルで入力待ちの際に表示する文字列です。報告では、コマンドラインの「--prompt」やAPIの「prompt」引数に渡した値が攻撃の入り口になります。入力元には、利用者自身が書いていないプロジェクト情報も含まれます。

問題が起きる条件として、報告はbashの「promptvars」が無効な状態での有効化を挙げています。このとき、特殊な文字を安全に扱う処理がされていない値が、プロンプト表示を設定する「PS1」に入ります。その後にpromptvarsを有効にすると、次のプロンプト表示でコマンドが実行されます。

また、有効化後にPOSIXモードへ切り替えた場合や、PS1を引き継いだ対話型の子bashでも実行が起きるとしています。不正な値は「pyvenv.cfg」や生成されたスクリプトに残り、別のセッションでも作動するとの報告です。有効化した直後に問題が見えなかったことだけでは、確認を終えられません。

再現した版と、報告が示す回避策

報告では、virtualenv 21.14.9と21.14.12で再現を確認しています。21.14.8では同じ手順による実行は起きず、21.14.9で行われた既存の脆弱性修正に伴う回帰、つまり修正によって生じた問題と説明しています。ただし、この結果だけで21.14.8への切り戻しを安全策と判断することはできません。今回の資料には、修正版や影響する版の全範囲は示されていません。

回避策として挙がっているのは、promptvarsを既定のまま有効にして仮想環境を有効化する方法と、有効化前に「VIRTUAL_ENV_DISABLE_PROMPT=1」を設定する方法です。信頼できない値を--promptに渡さないことも勧めています。

実行権限は環境を有効化したユーザーと同じで、権限昇格はないとされています。日本での提供は発表には書かれていません。国内向けの条件についても、今回の資料からは確認できません。

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

  • 影響する: virtualenv 21.14.9または21.14.12で、bash用のbin/activateを使う会社は確認対象です。特に、--promptやAPIのprompt引数へ外部のプロジェクト情報を渡す処理を確認してください。
  • 影響する: promptvarsを無効にして有効化した後、設定やモードを変更する運用、PS1を子bashへ引き継ぐ運用がある会社は、報告の発火条件と照合する必要があります。
  • 影響しない: virtualenvのbash用bin/activateを使わない会社は、今回報告された経路の対象ではありません。他のシェルや有効化方法の影響は、発表には書かれていません。

情シスが今日やること

  1. 今日の確認対象を開発部門と決めます。利用中のvirtualenvの版、bash用bin/activateの使用有無、確認担当者を一覧にしてください。21.14.9と21.14.12は再現確認済みの版として区別します。
  2. 開発担当者に、仮想環境の作成処理と有効化手順の確認を依頼します。--promptとAPIのprompt引数に何を渡しているか、利用者自身が書いていないプロジェクト情報が入るかを確認してください。
  3. 次に環境を有効化する前に、bashのpromptvars設定を確認します。報告にある回避策のどちらを採るか決め、必要に応じて有効化前にVIRTUAL_ENV_DISABLE_PROMPT=1を設定する手順を共有します。
  4. 既存の環境では、pyvenv.cfgと生成スクリプトに含まれるプロンプト値も確認します。値が残るとの報告があるため、現在の入力元だけでなく、作成済みの環境も確認対象にしてください。
  5. 開発責任者へ、再現確認済みの版、適用した回避策、未確認の環境を報告します。修正版は今回の資料に記載がないため、更新先を推測せず、追加の案内を確認する担当者を決めてください。

出典・参考

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

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

執筆

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

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

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

監修

佐々木 航株式会社Game

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

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

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

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