virtualenv: ダウンロードされた初期パッケージ(pip/setuptools)は、使用前に整合性チェックが行われません。

`download_wheel()`関数は、`pip download`を実行し、その結果をそのまま初期化プロセスに渡しますが、受信したデータのバイト列に対するチェックは行われません。virtualenvに組み込まれたpipとsetuptoolsのパッケージには、ロード時にvirtualenvがチェックする`BUNDLE_SHA256`が含まれていますが、定期的な更新機能や`--download`フラグによってネットワーク経由で取得されたパッケージには、同様の検証機能はありません。

悪意のあるインデックス、古いミラー、または中間者攻撃(TLSが傍受される場合、例えば、設定ミスや悪意のある認証局を介して)によって、同じディストリビューション/バージョン/ファイル名で別のパッケージが提供される可能性があります。その場合、virtualenvは警告なしにそのパッケージをキャッシュし、作成されるすべての環境に配布します。

修正点は、ダウンロードされたパッケージのsha256値を計算し、PyPIの公開JSON APIがその特定のバージョンに対して報告するハッシュ値と比較することです。このチェックは、カスタムインデックス(`PIP_INDEX_URL`、`PIP_EXTRA_INDEX_URL`、`PIP_INDEX`)が設定されている場合はスキップされます。これは、プライベートインデックスが意図的に再構築された別のパッケージを提供することが正当な場合があるためです。修正に関する詳細: https://github.com/pypa/virtualenv/pull/3251

影響を受けるパッケージ:
- pip (Python) virtualenv: 影響を受けるバージョンは21.7.11以下、修正されたバージョンは21.7.12。