CVE-2026-102930
WysokieCVSS 7.7Streszczenie
W virtualenv przed wersją 21.7.12 funkcja download_wheel() akceptuje koła seed pip i setuptools pobierane do okresowych aktualizacji lub opcji --download bez sprawdzania ich bajtów względem autorytatywnego skrótu równoważnego weryfikacji BUNDLE_SHA256 wbudowanych kół. Zmanipulowany indeks, nieaktualne lustro lub przechwycone połączenie TLS mogą podstawić inne koło pod żądaną dystrybucję, wersję i nazwę pliku, po czym virtualenv buforuje i wstawia kontrolowane przez atakującego koło do później tworzonych środowisk. Weryfikacja dotyczy domyślnej ścieżki PyPI i jest celowo pomijana, gdy PIP_INDEX_URL, PIP_EXTRA_INDEX_URL lub konfiguracja PIP_INDEX wskazują niestandardowy indeks.
Ocena ryzyka
Atakujący może wstrzyknąć złośliwe koło do środowisk tworzonych przez virtualenv, co prowadzi do wykonania dowolnego kodu w kontekście użytkownika. Ryzyko jest szczególnie wysokie w środowiskach używających niestandardowych indeksów lub podatnych na przechwycenie połączeń TLS.
Rekomendacja
Zaktualizować virtualenv do wersji 21.7.12 lub nowszej. Unikać niestandardowych indeksów bez odpowiedniej weryfikacji oraz zapewnić bezpieczeństwo połączeń TLS.
Inne podatności w virtualenv
Zobacz wszystkie- CVE-2026-102938Średnie
virtualenv to narzędzie do tworzenia izolowanych środowisk Pythona. Przed wersją 21.7.11 funkcja PyEnvCfg.write() zapisuje wartości prompt dosłownie do formatu pyvenv.cfg, podczas gdy PyEnvCfg._read_values() parsuje plik za pomocą str.splitlines() i akceptuje ostatnią wartość dla zduplikowanych kluczy. Atakujący mogący wpłynąć na --prompt, VIRTUALENV_PROMPT lub konfigurację może wstawić granicę linii i dodatkowe klucze, w tym home, powodując użycie przez konsumentów wybranego przez atakującego interpretera bazowego lub uszkodzenie metadanych środowiska.
- CVE-2026-102937Wysokie
W virtualenv przed wersją 21.7.12 metoda BatchActivator.quote() zwraca tekst zachęty bez zmian, zanim activate.bat wstawi go do instrukcji set "VAR=value" w cmd.exe. Atakujący mogący wpłynąć na --prompt, VIRTUALENV_PROMPT lub odpowiednią wartość konfiguracji może umieścić podwójny cudzysłów, który zamyka przypisanie i pozostawia następujące operatory cmd.exe jako wykonywalną składnię. Gdy użytkownik aktywuje wygenerowane środowisko Windows, wstrzyknięte polecenia są wykonywane z jego uprawnieniami.
- CVE-2026-102925Wysokie
W virtualenv przed wersją 21.7.13 generowane skrypty activate (bash i zsh) oraz activate.fish umieszczają wartości już zabezpieczone przez shlex.quote wewnątrz dodatkowego kontekstu cytowania. W skrypcie bash i zsh spreparowana ścieżka środowiska wirtualnego trafia do __VIRTUAL_ENV__, gdy zapisany katalog przeniesionego środowiska jest nieobecny; w skrypcie fish spreparowane ścieżki bibliotek Tcl lub Tk trafiają do __TCL_LIBRARY__ lub __TK_LIBRARY__. Nadmiarowe cudzysłowy mogą zakończyć ciąg tylko danych i pozostawić metaznaki powłoki jako polecenia podczas źródłowania skryptu aktywacyjnego, umożliwiając wykonanie kodu z uprawnieniami użytkownika.
Oryginalny opis (angielski, źródło NVD)
virtualenv is a tool for creating isolated virtual python environments. Prior to 21.7.12, download_wheel() accepts pip and setuptools seed wheels fetched for periodic updates or the --download option without checking their bytes against an authoritative digest equivalent to the embedded wheels' BUNDLE_SHA256 verification. A compromised index, stale mirror, or intercepted TLS connection can substitute a different wheel under the requested distribution, version, and filename, after which virtualenv caches and seeds the attacker-controlled wheel into subsequently created environments. The verification applies to the default PyPI path and is intentionally skipped when PIP_INDEX_URL, PIP_EXTRA_INDEX_URL, or PIP_INDEX configures a custom index that may legitimately publish rebuilt wheels. This issue is fixed in version 21.7.12.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

