picklescan przed wersją 1.0.4 nie blokuje co najmniej siedmiu modułów ze standardowej biblioteki Pythona, przez co atakujący może przemycić złośliwy plik pickle omijający mechanizmy bezpieczeństwa narzędzia. Luka jest szczególnie groźna, ponieważ picklescan jest stosowany właśnie jako bariera ochronna przed złośliwymi plikami pickle.
▸ Pokaż oryginał (EN)
picklescan before 1.0.4 fails to block at least seven Python standard library modules (including uuid, _osx_support, _aix_support, _pyrepl.pager, and imaplib) exposing eight functions that provide direct arbitrary command execution. Attackers can craft malicious pickle files importing these unblocked modules to achieve remote code execution while bypassing picklescan's safety validation entirely.
picklescan utrzymuje listę zablokowanych modułów i funkcji Pythona, które mogą być użyte do wykonania kodu podczas deserializacji pliku pickle. Jednak co najmniej siedem modułów standardowej biblioteki Pythona (m.in. uuid, _osx_support, _aix_support, _pyrepl.pager, imaplib) nie zostało uwzględnionych na tej liście blokady (CWE-184: Incomplete List of Disallowed Inputs). Moduły te udostępniają łącznie osiem funkcji pozwalających na bezpośrednie wykonanie dowolnych poleceń systemowych. Atakujący może spreparować złośliwy plik pickle importujący jeden z tych nieblokowanych modułów — picklescan uzna taki plik za bezpieczny i przepuści go, po czym jego deserializacja doprowadzi do wykonania dowolnego kodu.
Atakujący może osiągnąć zdalne wykonanie dowolnego kodu (RCE) na maszynie przetwarzającej złośliwy plik pickle, całkowicie omijając zabezpieczenia oferowane przez picklescan. Skutkuje to pełnym naruszeniem poufności, integralności i dostępności systemu.
Należy zaktualizować picklescan do wersji 1.0.4 lub nowszej. Szczegóły dostępne w referencjach producenta: https://github.com/mmaitre314/picklescan/security/advisories/GHSA-g38g-8gr9-h9xp
picklescan w wersjach przed 1.0.4
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X