Katalog CVE

CVE-2026-14534

WysokieCVSS 8.8
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

Podatność w bibliotece fickling do wersji 0.1.10 włącznie polega na braku modułów standardowej biblioteki Pythona (_posixsubprocess, site, atexit) na liście UNSAFE_IMPORTS. Powoduje to, że funkcja check_safety() błędnie klasyfikuje złośliwe ładunki pickle jako LIKELY_SAFE, co umożliwia ich deserializację i wykonanie niebezpiecznych funkcji, takich jak fork_exec, execsitecustomize czy _run_exitfuncs.

Ocena ryzyka

Atakujący może zdalnie wykonać dowolny kod binarny lub skrypt Pythona na serwerze, co prowadzi do pełnego przejęcia systemu, kradzieży danych lub przerwania działania usług.

Rekomendacja

Należy natychmiast zaktualizować bibliotekę fickling do wersji 0.1.11 lub nowszej, która zawiera poprawioną listę UNSAFE_IMPORTS. Do czasu aktualizacji nie należy używać funkcji fickling.load() do deserializacji niezaufanych danych.

Oryginalny opis (angielski, źródło NVD)

Trail of Bits fickling versions up to and including 0.1.10 do not include the Python standard library modules _posixsubprocess, site, and atexit in the UNSAFE_IMPORTS denylist (fickle.py). Because these modules are absent from the denylist, fickling's check_safety() function returns LIKELY_SAFE with zero findings for pickle payloads that invoke dangerous functions including _posixsubprocess.fork_exec (C-level process spawner capable of executing arbitrary binaries), site.execsitecustomize (executes arbitrary site customization code), and atexit._run_exitfuncs (triggers all registered exit handler callbacks). The fickling.load() API chains check_safety() into pickle.loads() as an explicit security gate; a LIKELY_SAFE verdict causes the payload to be deserialized and executed. This shares the same root cause as CVE-2026-22607 (cProfile), CVE-2025-67748 (pty), and CVE-2025-67747 (marshal/types). OvertlyBadEvals does not flag these modules because they are standard library imports. UnsafeImports does not flag them because they are not in the denylist. The UnusedVariables heuristic is defeated by the SETITEMS opcode pattern.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS