Skip to content
Heist/ feed
Back to feed
High

Security advisory

Type: advisorySources: OSVCVE: CVE-2026-31222

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-31222
Confirmed fixed CVEs
Not specified
Updated in this feed
2 Nov 2026, 20:14 UTC · Revision 1

Source evidence

CVE-2026-31222

core-osv · Original source

Published 12 May 2026, 00:00 UTC

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.

osv:CVE-2026-31222
Complete source record
{
  "id": "8b71f6365b8274d838d8d4cc2ba1a4af257e31e910439a7daa31f370624091e4",
  "url": "https://osv.dev/vulnerability/CVE-2026-31222",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2026-31222",
    "summary": "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.",
    "evidence": "osv:CVE-2026-31222",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-31222",
      "aliases": [
        "CVE-2026-31222",
        "GHSA-78cp-f66x-qmh5",
        "PYSEC-2026-3068"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/snorkel-team/snorkel",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "9b642a212abec640a868ccc558fa3dbeb4c6a390"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:snorkel:snorkel:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "0.10.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v0.10.0",
            "v0.9.9",
            "v0.9.8",
            "v0.9.7",
            "v0.9.6",
            "v0.9.5",
            "v0.9.4",
            "v0.9.3",
            "v0.9.2",
            "v0.9.1",
            "v0.9.0",
            "v0.7.0-beta",
            "v0.6.3",
            "v0.6.2",
            "v0.6.1",
            "v0.6",
            "v0.5",
            "v0.4"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-31222.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:23.176727318Z",
      "provider": "osv",
      "references": [
        "https://www.notion.so/CVE-2026-31222-35d1e139318881db8398e0732af8df6d",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31222.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-31222",
        "https://github.com/snorkel-team/snorkel"
      ],
      "provider_metadata": {
        "cna_assigner": "mitre",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31222.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-31222",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 489727,
  "published_at": "2026-05-12T00:00:00+00:00"
}