Skip to main content

Snorkel EUVDEUVD-2026-29506

| CVE-2026-31222 HIGH
Deserialization of Untrusted Data (CWE-502)
2026-05-12 mitre GHSA-78cp-f66x-qmh5
8.8
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
8.8 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
Analysis Generated
May 13, 2026 - 15:55 vuln.today
CVSS changed
May 13, 2026 - 15:52 NVD
8.8 (HIGH)
CVE Published
May 12, 2026 - 00:00 nvd
HIGH 8.8
CVE Published
May 12, 2026 - 00:00 nvd
UNKNOWN (no severity yet)

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 5 pypi packages depend on snorkel (4 direct, 1 indirect)

Ecosystem-wide dependent count for version 0.10.0.

DescriptionCVE.org

The snorkel library thru v0.10.0 contains an insecure deserialization vulnerability (CWE-502) in the Trainer.load() method of the Trainer class. The method loads model checkpoint files using torch.load() without enabling the security-restrictive weights_only=True parameter. This default behavior allows the deserialization of arbitrary Python objects via the Pickle module. A remote attacker can exploit this by providing a maliciously crafted model file, leading to arbitrary code execution on the victim's system when the file is loaded via the vulnerable method.

AnalysisAI

Arbitrary code execution in Snorkel machine learning library (≤v0.10.0) occurs when users load malicious model checkpoint files through the Trainer.load() method. The vulnerability stems from unsafe PyTorch deserialization that processes untrusted Pickle objects without the weights_only security parameter. Attackers can embed malicious Python code in model files distributed through repositories, shared datasets, or social engineering campaigns. Despite the 8.8 CVSS score indicating critical severity, EPSS scoring at 0.06% (19th percentile) suggests very low real-world exploitation probability, and no active exploitation or public proof-of-concept has been identified at time of analysis.

Technical ContextAI

Snorkel is a Python framework for programmatic data labeling and weak supervision in machine learning pipelines. The vulnerability resides in the interaction between Snorkel's Trainer class and PyTorch's checkpoint loading mechanism. PyTorch's torch.load() function uses Python's Pickle protocol for serialization, which can execute arbitrary code during deserialization. While PyTorch introduced the weights_only=True parameter to restrict deserialization to tensor data only, Snorkel v0.10.0 and earlier versions call torch.load() with default settings that permit full object deserialization. This creates a CWE-502 (Deserialization of Untrusted Data) vulnerability where any Python object-including those with __reduce__ methods that execute system commands-can be embedded in a model file and triggered when loaded.

RemediationAI

Upgrade to Snorkel versions newer than v0.10.0 when a patched release becomes available; monitor the official GitHub repository (https://github.com/snorkel-team/snorkel) and PyPI package updates for security releases addressing CVE-2026-31222. No vendor-released patch version is independently confirmed from available data at time of analysis. As interim compensating controls: restrict Trainer.load() usage to checkpoint files from trusted, verified sources only; implement file integrity verification using cryptographic signatures or hashes before loading any model checkpoints; apply filesystem permissions to prevent unauthorized modification of checkpoint directories; deploy application sandboxing (containers, VMs with limited privileges) to contain potential code execution if malicious models are loaded; consider patching the local Snorkel installation by modifying Trainer.load() to call torch.load() with weights_only=True, though this may break legitimate functionality if checkpoints contain non-tensor objects. Network-based controls are ineffective as exploitation occurs during local file processing. Organizations not loading third-party or user-supplied checkpoint files face minimal risk and may defer patching until operational updates.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

Share

EUVD-2026-29506 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy