CVE-2026-31223

Published May 12, 2026 CVSS 3.1 · 8.8 High EPSS < 1% KEV · Not listed
Description
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.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-fq92-qc8f-482v Snorkel BaseLabeler.load uses an unsafe pickle.load
History
Type Values Removed Values Added
First Time appeared Snorkel-team
Snorkel-team snorkel
Vendors & Products Snorkel-team
Snorkel-team snorkel
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
Title Critical Insecure Deserialization in Snorkel BaseLabeler
Type Values Removed Values Added
First Time appeared Snorkel
Snorkel snorkel
CPEs cpe:2.3:a:snorkel:snorkel:*:*:*:*:*:*:*:*
Vendors & Products Snorkel
Snorkel snorkel
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'}

Type Values Removed Values Added
Title Critical Insecure Deserialization in Snorkel BaseLabeler
Weaknesses CWE-502
Type Values Removed Values Added
Description 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.
References
Weaknesses

Sources

Status
PUBLISHED
Assigner
mitre
Published
Updated
May 15, 2026, 6:05 PM
Reserved
Mar 9, 2026, 12:00 AM
Status
Modified
Published
May 12, 2026, 4:16 PM
Modified
Oct 19, 2026, 10:10 PM