CVE-2026-14534: Trail of Bits fickling sandbox bypass via incomplete denylist

CVE-2026-14534 · Severity: high · CVSS 8.8 · Published 2026-07-04

Fickling is a security tool used to analyze and safely load Python "pickle" files, which are often used in AI and machine learning models. A vulnerability in Fickling's safety scanner allowed malicious files to bypass security checks by using specific Python modules that were missing from its blocklist. If an attacker convinces a user to scan or load a specially crafted malicious file, they could execute arbitrary commands on the user's system, potentially leading to a full system takeover or data theft.

Technologies: fickling (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-14534 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-14534 being exploited in the wild.
How severe is CVE-2026-14534?
High severity, with a CVSS score of 8.8, published 4 July 2026.
Which products and versions are affected?
fickling (PyPI) ECOSYSTEM:introduced=0,fixed=0.1.11.
Is there a fix for CVE-2026-14534?
Yes. fickling (PyPI): upgrade to 0.1.11 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-14534 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-14534?
Check whether you run fickling (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • fickling (PyPI): upgrade to 0.1.11 or later
    pip install "fickling>=0.1.11"

Technical details

A deserialization vulnerability exists in Trail of Bits fickling (versions <= 0.1.10) due to an incomplete denylist in the `UNSAFE_IMPORTS` list within `fickle.py`. The `check_safety()` function fails to identify payloads utilizing `_posixsubprocess.fork_exec`, `site.execsitecustomize`, or `atexit._run_exitfuncs` as dangerous, returning a 'LIKELY_SAFE' verdict. Because `fickling.load()` uses this verdict as a security gate before calling `pickle.loads()`, an attacker can achieve arbitrary code execution via a crafted pickle file. The vulnerability is further exacerbated because the `UnusedVariables` heuristic is bypassed by the `SETITEMS` opcode pattern. This issue was addressed in version 0.1.11 by expanding the blocklist.

Affected products

  • Trail of Bits fickling <= 0.1.10

Identifiers

  • CVE-2026-14534
  • PYSEC-2026-2149

Timeline

  • 2026-05-06: patched: Fix merged into master and version 0.1.11 released.
  • 2026-07-04: disclosed: CVE-2026-14534 published.

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.