Vulnerability · Published Jan 10, 2026 · Assigned by GitHub_M
CVE-2026-22606Fickling has a bypass via runpy.run_path() and runpy.run_module()
High 8.9
In plain English
A high-severity unsafe deserialization in fickling from trailofbits. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.5% (higher than 42% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
Fickling is a Python pickling decompiler and static analyzer. Fickling versions up to and including 0.1.6 do not treat Python’s runpy module as unsafe. Because of this, a malicious pickle that uses runpy.run_path() or runpy.run_module() is classified as SUSPICIOUS instead of OVERTLY_MALICIOUS. If a user relies on Fickling’s output to decide whether a pickle is safe to deserialize, this misclassification can lead them to execute attacker-controlled code on their system. This affects any workflow or product that uses Fickling as a security gate for pickle deserialization. This issue has been patched in version 0.1.7.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| PyPI | fickling | 0.1.7 | GHSA-wfq2-52f7-7qvj |
| PyPI | fickling | 0.1.7 | PYSEC-2026-1373 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| trailofbits | fickling | < 0.1.7 |
Weakness: CWE-184, CWE-502 · Vector: 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:P