CVE-2026-14534: CWE-184 Incomplete List of Disallowed Inputs in trailofbits fickling
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.
AI Analysis
Technical Summary
The vulnerability in trailofbits fickling (<=0.1.10) arises because the UNSAFE_IMPORTS denylist used by the check_safety() function does not include the Python standard library modules _posixsubprocess, site, and atexit. As a result, pickle payloads that invoke dangerous functions such as _posixsubprocess.fork_exec, site.execsitecustomize, and atexit._run_exitfuncs are incorrectly marked as LIKELY_SAFE. Since the fickling.load() API relies on check_safety() to gatepickle.loads(), this leads to unsafe deserialization and potential arbitrary code execution. This issue shares the same root cause as other CVEs involving incomplete denylist checks in Python modules.
Potential Impact
An attacker can craft malicious pickle payloads that invoke dangerous functions in the excluded modules, bypassing fickling's safety checks. This can lead to arbitrary code execution with the privileges of the process running fickling, resulting in full confidentiality, integrity, and availability compromise (C:H/I:H/A:H).
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, avoid deserializing untrusted pickle payloads with fickling versions up to 0.1.10. Consider applying manual denylist updates or alternative safe deserialization methods.
CVE-2026-14534: CWE-184 Incomplete List of Disallowed Inputs in trailofbits fickling
Description
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.
CVSS v3.1
Score 8.8high
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in trailofbits fickling (<=0.1.10) arises because the UNSAFE_IMPORTS denylist used by the check_safety() function does not include the Python standard library modules _posixsubprocess, site, and atexit. As a result, pickle payloads that invoke dangerous functions such as _posixsubprocess.fork_exec, site.execsitecustomize, and atexit._run_exitfuncs are incorrectly marked as LIKELY_SAFE. Since the fickling.load() API relies on check_safety() to gatepickle.loads(), this leads to unsafe deserialization and potential arbitrary code execution. This issue shares the same root cause as other CVEs involving incomplete denylist checks in Python modules.
Potential Impact
An attacker can craft malicious pickle payloads that invoke dangerous functions in the excluded modules, bypassing fickling's safety checks. This can lead to arbitrary code execution with the privileges of the process running fickling, resulting in full confidentiality, integrity, and availability compromise (C:H/I:H/A:H).
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, avoid deserializing untrusted pickle payloads with fickling versions up to 0.1.10. Consider applying manual denylist updates or alternative safe deserialization methods.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- BombadilSystems
- Date Reserved
- 2026-07-03T00:02:49.289Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a49100627e9c797194461e9
Added to database: 07/04/2026, 13:52:06 UTC
Last enriched: 07/12/2026, 08:55:42 UTC
Last updated: 08/18/2026, 10:54:22 UTC
Views: 126
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.