Executive brief
Snorkel is a popular Python library used for programmatically building and managing training datasets for machine learning. A security flaw in how the library loads saved models allows an attacker to execute malicious code on a user's system. This occurs if a user is convinced to load a specially crafted model file, potentially leading to a full system compromise or data theft.
Technical details
The Snorkel library (up to and including v0.10.0) contains an insecure deserialization vulnerability (CWE-502) within the MultitaskClassifier.load() method. The root cause is the use of the torch.load() function without the weights_only=True parameter, which defaults to using the Pickle module for deserialization. An attacker can craft a malicious model file containing arbitrary Python objects that execute code upon being unpickled. Exploitation requires a user to load the malicious file using the affected method. As of the advisory date, no patched version is specified.
Affected products
- snorkel-team snorkel <= 0.10.0
Timeline
- 2026-05-12: disclosed: Initial disclosure and NVD publication
- 2026-05-12: advisory: GitHub Advisory published
- 2026-05-18: other: GitHub Advisory reviewed and updated