{"id":"CVE-2026-31223","aliases":["GHSA-fq92-qc8f-482v","PYSEC-2026-3069"],"url":"https://o3.security/vulnerability/CVE-2026-31223","summary":"Snorkel BaseLabeler.load uses an unsafe pickle.load","details":"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.","published":"2026-05-12T00:00:00Z","modified":"2026-07-15T01:49:11.075987879Z","cvss":{"score":8.8,"severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"},"epss":{"score":0.00392,"percentile":0.32005,"asOf":"2026-08-09"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"PyPI","name":"snorkel","fixedVersion":null}],"fix":null,"references":[{"type":"WEB","url":"https://www.notion.so/CVE-2026-31223-35d1e1393188811ab1d0e4a8a2e67992"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31223.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-31223"},{"type":"PACKAGE","url":"https://github.com/snorkel-team/snorkel"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-07-15T01:49:11.075987879Z"}}