何が起きたか
virtualenv に渡すプロンプトや作成先の値が、生成される activate スクリプト内で実行可能な構文になりうる問題が2件公表されました。1件は bash 系で、dash で activate を直接読み込む場合、bash から export された PS1 を子の dash が引き継ぐ場合、bash の互換レベルが 4.2 以下の場合に、プロンプト表示のたびに値の中のコマンドが実行されます。もう1件は xonsh で、GBK や Big5 などの文字コードで activate.xsh を読むと引用符のエスケープが崩れ、有効化時に任意の文が実行されます。いずれも攻撃者が virtualenv に渡す値を操作でき、利用者がその環境を有効化することが条件です。
やること
21.14.9 以降へ更新します。外部から受け取った値を --prompt などに渡して環境を作る仕組みがある場合は、優先して対応してください。
出典
virtualenv のセキュリティ勧告(bash)github.com英語 ↗virtualenv のセキュリティ勧告(xonsh)github.com英語 ↗GitHub Advisory Databasegithub.com英語 ↗上の要約は通り道編集部がまとめたものです。影響範囲と修正版は必ず各出典で確認してください。