Severity by source
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
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Lifecycle Timeline
4Blast Radius
ecosystem impact- 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 a critical insecure deserialization vulnerability (CWE-502) in the BaseLabeler.load() method of the BaseLabeler class. The method loads serialized labeler models using the unsafe pickle.load() function on user-supplied file paths without any validation or security controls. Python's pickle module is inherently dangerous for deserializing untrusted data, as it can execute arbitrary code during the deserialization process. A remote attacker can exploit this by providing a maliciously crafted pickle 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 library (Python) through version 0.10.0 enables remote attackers to execute code by supplying malicious pickle files to the BaseLabeler.load() method. The vulnerability stems from unsafe deserialization using pickle.load() without input validation, allowing attackers to craft serialized objects that execute arbitrary commands during deserialization. With EPSS at 6th percentile, exploitation probability remains relatively low despite the critical CVSS score, and no active exploitation (KEV) 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 workflows. The vulnerability resides in the BaseLabeler class's load() method, which deserializes labeler model files using Python's pickle module. CWE-502 (Deserialization of Untrusted Data) represents a fundamental security anti-pattern where serialization formats with executable capabilities process untrusted input. Python's pickle protocol can invoke arbitrary callables during unpickling via __reduce__ magic methods, making it unsuitable for loading data from untrusted sources. The affected CPE is generic (cpe:2.3:a:n/a:n/a), indicating limited structured product metadata, though the snorkel-team GitHub repository is confirmed as the authoritative source for this library.
RemediationAI
Upgrade Snorkel to a patched version beyond 0.10.0 if available from the maintainers at https://github.com/snorkel-team/snorkel, monitoring the repository's releases and security advisories for fix confirmation. Upstream fix version not independently confirmed from available data at time of analysis. As immediate mitigation, restrict BaseLabeler.load() usage to only load pickle files from trusted, validated sources within controlled environments. Implement file integrity checks (cryptographic signatures/hashes) for any labeler model files before deserialization. Consider refactoring code to use safer serialization formats like JSON or Protocol Buffers for labeler persistence where architecturally feasible, though this requires code changes to the serialization logic. Isolate Snorkel execution environments using containerization with minimal privileges to limit blast radius if exploitation occurs. Disable or remove BaseLabeler.load() functionality entirely if not required for operational workflows. Note that mitigation trade-offs include reduced functionality for loading pre-trained labelers and potential workflow disruptions if model persistence is core to ML pipelines.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
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
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
Cross-user flow execution in Langflow (< 1.9.1) lets any authenticated API-key holder run another user's flow by passing
Same weakness CWE-502 – Deserialization of Untrusted Data
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-29507
GHSA-fq92-qc8f-482v