Read the docs
TI-2026-18167 Aliases CVE-2026-22606GHSA-wfq2-52f7-7qvj

Fickling has a bypass via runpy.run_path() and runpy.run_module()

Priority HIGH 80CWE-184Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
None
Impact type
Code execution
Confidentiality · integrity · availability
High · High · High
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-502.

Summary

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.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00482 41st percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Fixed fickling (trailofbits): 0.1.7fickling (PyPI): 0.1.7

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
Yes
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
trailofbitsficklingbefore 0.1.70.1.7Patch availableCNA
—fickling (PyPI)before 0.1.70.1.7Patch availableGHSA-wfq2-52f7-7qvj
  • fickling Vendortrailofbits Affected before 0.1.7 Fixed in 0.1.7 Patch available CNA
  • fickling (PyPI) Vendor— Affected before 0.1.7 Fixed in 0.1.7 Patch available GHSA-wfq2-52f7-7qvj

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:trailofbits:fickling:*:*:*:*:*:python:*:*before 0.1.7Vulnerabletrailofbits
  • cpe:2.3:a:trailofbits:fickling:*:*:*:*:*:python:*:* Versions before 0.1.7 Vulnerable ·trailofbits

Remediation

  • Fix · CNA fickling (trailofbits) Fixed in 0.1.7
  • Fix · GHSA-wfq2-52f7-7qvj fickling (PyPI) Fixed in 0.1.7 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-22606
  2. 2026-10-03 Alias added: GHSA-wfq2-52f7-7qvj

References

  • TI-2026-18173 Fickling vulnerable to detection bypass due to "builtins" blindness CVSS 4.0HIGH 8.9
  • TI-2026-18170 Fickling has Static Analysis Bypass via Incomplete Dangerous Module Blocklist CVSS 4.0HIGH 8.9
  • TI-2026-18169 Fickling vulnerable to use of ctypes and pydoc gadget chain to bypass detection CVSS 4.0HIGH 8.9
  • TI-2026-18168 Fickling Blocklist Bypass: cProfile.run() CVSS 4.0HIGH 8.9
  • TI-2026-12265 Fickling MLAllowlist analysis pass rendered inoperative by shared mutable state in AnalysisContext.shorten_code() CVSS 3.1CRITICAL 9.8
  • TI-2026-12264 Fickling check_safety() bypass via unlisted standard library modules (_posixsubprocess, site, atexit) CVSS 3.1HIGH 8.8
See all 8 →

Sources