Fickling vulnerable to use of ctypes and pydoc gadget chain to bypass detection
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. Prior to version 0.1.7, both ctypes and pydoc modules aren't explicitly blocked. Even other existing pickle scanning tools (like picklescan) do not block pydoc.locate. Chaining these two together can achieve RCE while the scanner still reports the file as LIKELY_SAFE. This issue has been patched in version 0.1.7.
Why it matters now
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
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| trailofbits | fickling | before 0.1.7 | 0.1.7 | Patch available | CNA |
| — | fickling (PyPI) | before 0.1.7 | 0.1.7 | Patch available | GHSA-5hvc-6wx8-mvv4 |
- 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-5hvc-6wx8-mvv4
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:trailofbits:fickling:*:*:*:*:*:*:*:* | before 0.1.7 | Vulnerable | trailofbits |
- cpe:2.3:a:trailofbits:fickling:*:*:*:*:*:*:*:* Versions before 0.1.7 Vulnerable ·trailofbits
Remediation
- Fix · CNA fickling (trailofbits) Fixed in 0.1.7
- Fix · GHSA-5hvc-6wx8-mvv4 fickling (PyPI) Fixed in 0.1.7 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-22608
- 2026-10-03 Alias added: GHSA-5hvc-6wx8-mvv4
References
Advisory 2
Other 5
- https://github.com/trailofbits/fickling/releases/tag/v0.1.7
- https://github.com/trailofbits/fickling/pull/195
- https://github.com/trailofbits/fickling/commit/d0b00d584afb5c58e38991cd544cb3889de90db6
- https://github.com/trailofbits/fickling
- https://github.com/trailofbits/fickling/blob/977b0769c13537cd96549c12bb537f05464cf09c/test/test_bypasses.py#L145
More trailofbits Fickling vulnerabilities
- 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-18168 Fickling Blocklist Bypass: cProfile.run() CVSS 4.0HIGH 8.9
- TI-2026-18167 Fickling has a bypass via runpy.run_path() and runpy.run_module() 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
Sources
- CVE-2026-22608 · CVE Program
- CVE-2026-22608 · NVD
- FIRST EPSS
- GHSA-5hvc-6wx8-mvv4 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences