CVE-2026-14535: CWE-693 Protection Mechanism Failure in trailofbits fickling
CVE-2026-14535 is a vulnerability in trailofbits fickling up to version 0.1.11 where the MLAllowlist analysis pass is rendered ineffective due to shared mutable state with the UnsafeImportsML pass. This flaw causes the allowlist check to be skipped, allowing imports outside the known-safe machine learning ecosystem to be considered safe. Consequently, pickle deserialization can execute potentially unsafe code if it passes the flawed check_safety() gate. The vulnerability has a high severity with a CVSS score of 8.8.
AI Analysis
Technical Summary
In trailofbits fickling versions up to and including 0.1.11, the UnsafeImportsML analysis pass calls AnalysisContext.shorten_code(node) on every import node, registering shortened code in a shared set. When the MLAllowlist pass runs, it detects all imports as already reported and skips its allowlist checks entirely. This shared mutable state between the two passes causes MLAllowlist to never evaluate whether an import is in the allowlist, effectively disabling this security check. As a result, any standard library module not explicitly denied can be imported via pickle deserialization while check_safety() returns LIKELY_SAFE, allowing execution of potentially unsafe code through fickling.load().
Potential Impact
The vulnerability allows bypassing the MLAllowlist security check, enabling deserialization and execution of potentially unsafe modules via pickle.loads() when using fickling.load(). This can lead to arbitrary code execution with high confidentiality, integrity, and availability impact, as indicated by the CVSS vector. The flaw undermines the intended security gate designed to restrict imports to a known-safe machine learning ecosystem.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, users should avoid using fickling versions up to 0.1.11 in security-sensitive contexts or disable pickle deserialization features that rely on check_safety(). Monitor vendor channels for updates and apply patches once released.
CVE-2026-14535: CWE-693 Protection Mechanism Failure in trailofbits fickling
Description
CVE-2026-14535 is a vulnerability in trailofbits fickling up to version 0.1.11 where the MLAllowlist analysis pass is rendered ineffective due to shared mutable state with the UnsafeImportsML pass. This flaw causes the allowlist check to be skipped, allowing imports outside the known-safe machine learning ecosystem to be considered safe. Consequently, pickle deserialization can execute potentially unsafe code if it passes the flawed check_safety() gate. The vulnerability has a high severity with a CVSS score of 8.8.
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.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
In trailofbits fickling versions up to and including 0.1.11, the UnsafeImportsML analysis pass calls AnalysisContext.shorten_code(node) on every import node, registering shortened code in a shared set. When the MLAllowlist pass runs, it detects all imports as already reported and skips its allowlist checks entirely. This shared mutable state between the two passes causes MLAllowlist to never evaluate whether an import is in the allowlist, effectively disabling this security check. As a result, any standard library module not explicitly denied can be imported via pickle deserialization while check_safety() returns LIKELY_SAFE, allowing execution of potentially unsafe code through fickling.load().
Potential Impact
The vulnerability allows bypassing the MLAllowlist security check, enabling deserialization and execution of potentially unsafe modules via pickle.loads() when using fickling.load(). This can lead to arbitrary code execution with high confidentiality, integrity, and availability impact, as indicated by the CVSS vector. The flaw undermines the intended security gate designed to restrict imports to a known-safe machine learning ecosystem.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, users should avoid using fickling versions up to 0.1.11 in security-sensitive contexts or disable pickle deserialization features that rely on check_safety(). Monitor vendor channels for updates and apply patches once released.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- BombadilSystems
- Date Reserved
- 2026-07-03T00:02:55.918Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a49100627e9c797194461f2
Added to database: 07/04/2026, 13:52:06 UTC
Last enriched: 07/04/2026, 14:06:22 UTC
Last updated: 07/04/2026, 14:09:20 UTC
Views: 4
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.