> CVE-2026-14535 [HIGH]

« BACK_TO_HOME
PUBLISHED
2026-07-04 14:16
MODIFIED
2026-07-04 14:16
CVSS_SCORE V3
8.8
EPSS (Prob. Exploit)
0.56%
Top 53.8%
DATA SOURCES:
NVD đź”— 2026-07-04 CWE MITRE đź”— 2026-11-01 FIRST EPSS đź”— 2026-10-25 OSV đź”— 2026-09-20

> 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.

> AFFECTED_PRODUCTS

ℹ️ Aucun produit affecté n'a encore été publié par NVD pour cette CVE.

> CVSS V3 METRICS

CVSS_VECTOR
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
EXPLOITABILITY
2.8
IMPACT
5.9

> MÉTRIQUES CVSS DÉTAILLÉES

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Métrique Valeur Interprétation
AV (Vecteur d'Attaque)
Attack Vector
Network (N)
Exploit possible à distance via réseau (HTTP, API, etc.)
AC (Complexité d'Attaque)
Attack Complexity
Low (L)
Peu de conditions requises pour exploiter
PR (Privilèges Requis)
Privileges Required
None (N)
Aucune authentification requise
UI (Interaction Utilisateur)
User Interaction
Required (R)
Nécessite une action utilisateur (clic lien, ouverture fichier, etc.)
S (Périmètre)
Scope
Unchanged (U)
Impact reste dans le périmètre du composant compromis
C (Impact Confidentialité)
Confidentiality Impact
High (H)
Divulgation totale d'informations
I (Impact Intégrité)
Integrity Impact
High (H)
Modification totale des données possible
A (Impact Disponibilité)
Availability Impact
High (H)
Interruption totale du service possible

> RÉSUMÉ DES IMPACTS

Confidentialité
High
Divulgation totale d'informations
Intégrité
High
Modification totale des données possible
Disponibilité
High
Interruption totale du service possible

> WEAKNESSES

CWE-693

> CWE DETAILED DESCRIPTIONS

CWE-693: Protection Mechanism Failure - The product does not use or incorrectly uses a protection mechanism that provides sufficient defense against directed attacks against the product.

> OSV (GOOGLE OPEN SOURCE VULNERABILITIES)

Fickling MLAllowlist analysis pass rendered inoperative by shared mutable state in AnalysisContext.shorten_code()

AFFECTED PACKAGES:
Unknown / Unknown
21 versions affected
ALIASES:
GHSA-cffv-grgg-g429, PYSEC-2026-2150

> HISTORIQUE DES MODIFICATIONS

Première apparition
04/07/2026 14:16
Source: NVD
📊 ENRICHISSEMENT 01/08/2026 06:01
CWE
Champ modifié: Description CWE
Ancienne valeur:
N/A
Nouvelle valeur:
CWE-693: Protection Mechanism Failure - The product does not use or incorrectly uses a protection mechanism that provides sufficient defense against directed attacks against the product.
Total des modifications: 1 Dernière mise à jour: 3 months ago

> REFERENCES

https://github.com/trailofbits/fickling/commit/41ce7cb01edd97072994039574a2301eb...
https://github.com/trailofbits/fickling/pull/278
https://github.com/trailofbits/fickling/releases/tag/v0.1.12
https://github.com/trailofbits/fickling/security/advisories/GHSA-cffv-grgg-g429
« BACK_TO_HOME