CVE-2026-14535
Last modified
CVE-2026-14535 is a critical-severity vulnerability rated 9.8/10 on the CVSS scale. In Trail of Bits fickling versions up to and including 0.1.11, the UnsafeImportsML analysis pass unconditionally calls AnalysisContext.shorten_code(node) on every import node it inspects, regardless of whether the import is flagged as unsafe. This call registers the shortened code representation in the shared AnalysisContext.reported_shortened_code set. EPSS estimates a 0.30% chance of exploitation in the next 30 days.
Description
In Trail of Bits fickling versions up to and including 0.1.11, the UnsafeImportsML analysis pass unconditionally calls AnalysisContext.shorten_code(node) on every import node it inspects, regardless of whether the import is flagged as unsafe. This call registers the shortened code representation in the shared AnalysisContext.reported_shortened_code set. When the MLAllowlist analysis pass subsequently runs, it calls the same shorten_code() method, receives already_reported=True for every import, and executes a continue statement that skips its allowlist check entirely. This renders MLAllowlist dead code for all imports — it never evaluates whether an import is in the ML allowlist or not. The MLAllowlist pass was designed to catch imports of modules outside the known-safe ML ecosystem (torch, numpy, transformers, etc.) that slip past the UnsafeImports denylist. With MLAllowlist inoperative, any standard library module not in the UNSAFE_IMPORTS denylist can be invoked via pickle deserialization while fickling's check_safety() returns LIKELY_SAFE. The fickling.load() API chains check_safety() into pickle.loads() as an explicit security gate, meaning a LIKELY_SAFE verdict causes the payload to be deserialized and executed. The root cause is shared mutable state between independently-correct analysis passes — UnsafeImportsML works as designed in isolation, MLAllowlist works as designed in isolation, but the shared reported_shortened_code set causes UnsafeImportsML to poison MLAllowlist's deduplication logic.
Metrics
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness Enumeration
Affected Software
| Vendor | Product | Versions |
|---|---|---|
| Trailofbits | Fickling | <= 0.1.11 |
References
- https://github.com/trailofbits/fickling/pull/278Issue Tracking, Patch
- https://github.com/trailofbits/fickling/security/advisories/GHSA-cffv-grgg-g429Exploit, Third Party Advisory
- https://github.com/trailofbits/fickling/security/advisories/GHSA-cffv-grgg-g429Exploit, Third Party Advisory
Timeline
- Published
- Last Modified
- Status
- Analyzed
Frequently Asked Questions
What is CVE-2026-14535?
How severe is CVE-2026-14535?
How do I fix CVE-2026-14535?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-14525IBM WebSphere Application Server - Liberty 17.0.0.3 through …9.4
- CVE-2026-14526The AI Copilot – Content Generator plugin for WordPress is v…9.8
- CVE-2026-14528IBM WebSphere Application Server 9.0, and 8.5 traditional co…7.5
- CVE-2026-14529IBM WebSphere Application Server 9.0, and 8.5 and IBM WebSph…9.8
- CVE-2026-1453A missing authentication for critical function vulnerability…9.8
- CVE-2026-14534Trail of Bits fickling versions up to and including 0.1.10 d…8.8
- CVE-2026-14536Improper enforcement of a mandatory multi-factor authenticat…8.8
- CVE-2026-14537Incorrect Authorization in the direct HTTP API tool invocati…9.8
- CVE-2026-14538An improper authorization and security-boundary bypass vulne…7.7
- CVE-2026-14539An allocation of resources without limits vulnerability in t…7.5
- CVE-2026-1454The Responsive Contact Form Builder & Lead Generation Plugin…7.2
- CVE-2026-14540A Server-Side Request Forgery (SSRF) vulnerability exists in…6.1
Are you affected by CVE-2026-14535?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
