CVE-2026-16760
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W wersji Trail of Bits przechodzącej do wersji 0.1.12 metoda _process_import() w fickle.py dodaje zaimportowaną nazwę do zestawu valid_safe_imports za każdym razem, gdy moduł źródłowy jest obecny w sys.stdlib_module_names, a nazwy nie ma na liście odrzuconych UNSAFE_IMPORTS, bez sprawdzania, do czego ta nazwa jest rozpoznawana i jak się zachowuje. Przebieg analizy OvertlyBadEvals w pliku Analysis.py następnie bezwarunkowo pomija każde wywołanie, którego nazwa funkcji pojawia się w pliku valid_safe_imports, łącznie z wywołaniami, które w innym przypadku zostałyby oznaczone jako jawnie niebezpieczne. W rezultacie każdy wywoływalny moduł osiągalny poprzez niezablokowany standardowy moduł biblioteki dziedziczy zaufanie na poziomie modułu niezależnie od własnego zachowania, a funkcja check_safety() zwraca LIKELY_SAFE z zerowymi wynikami dla ładunków typu pickle, które osiągają wykonanie kodu lub zapis pliku poprzez takie elementy wywoływalne. Zademonstrowane prymitywy: dataclasses._create_fn, który przekazuje treść funkcji kontrolowanej przez atakującego do exec() i daje wykonanie dowolnego kodu w Pythonie od 3.7 do 3.12 (wewnętrzna funkcja _create_fn została usunięta w Pythonie 3.13); mailcap.findmatch, który wewnętrznie wywołuje os.system() po poleceniu testowym pobranym ze słownika caps kontrolowanego przez atakującego, co skutkuje wykonaniem dowolnego kodu w wersjach Pythona do 3.12 (moduł mailcap został usunięty w Pythonie 3.13); oraz readline.add_history(), po której następuje readline.write_history_file(), która zapisuje zawartość kontrolowaną przez atakującego w dowolnej ścieżce systemu plików (platformy POSIX, gdzie dostępny jest moduł readline). fickling.load() łączy funkcję check_safety() z pickle.loads() jako jawną bramkę bezpieczeństwa, więc werdykt LIKELY_SAFE powoduje deserializację ładunku i wykonanie z uprawnieniami procesu ofiary. Główną przyczyną jest wnioskowanie o możliwym do wywołania bezpieczeństwie na podstawie pochodzenia modułu; jest ona niezależna i można ją oddzielnie naprawić od słabej rozdzielczości przerywanej __qualname__ oznaczonej jako CVE-2026-118938, której niniejszy poradnik nie uwzględnia. Na dzień 30.10.2026 trzy zademonstrowane moduły zostały dodane do UNSAFE_IMPORTS w głównej gałęzi dostawcy (zatwierdzenie d011709) w oczekiwaniu na wydanie; Problem dotyczy wersji wydanych do wersji 0.1.12, a podstawowa przyczyna zaufania źródła modułu nadal występuje, o czym świadczy powiązany błąd CVE-2026-118938, który nadal można wykorzystać w tej samej kompilacji.
>_ Słabości (CWE)
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org