{"id":"CVE-2026-96775","aliases":["EUVD-2026-85410","GHSA-q5f3-5gj6-hmj7"],"status":"published","title":"MLflow dspy bypasses pickle deserialization control","description":"MLflow's dspy flavor, versions \u003e= 2.0,  applies the MLFLOW_ALLOW_PICKLE_DESERIALIZATION=False security control only when the model_path ends in .pkl, which allows a remote attacker to execute arbitrary code via a crafted MLmodel artifact.","severity":{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-11","score":0.00646,"percentile":0.51413,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-502"],"published":"2026-09-23T16:28:59Z","modified":"2026-09-23T18:32:06Z","products":[{"vendor":"mlflow","product":"mlflow"}],"references":[{"url":"https://kb.cert.org/vuls/id/369093"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-96775"},{"url":"https://github.com/advisories/GHSA-q5f3-5gj6-hmj7"}],"sources":{"cve":[{"id":"CVE-2026-96775","title":"MLflow dspy bypasses pickle deserialization control","description":"MLflow's dspy flavor, versions \u003e= 2.0,  applies the MLFLOW_ALLOW_PICKLE_DESERIALIZATION=False security control only when the model_path ends in .pkl, which allows a remote attacker to execute arbitrary code via a crafted MLmodel artifact.","status":"published","published":"2026-09-23T16:28:59.493Z","modified":"2026-09-23T17:22:35.232Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"adp"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:20:00.511569Z"}],"euvd":[{"id":"EUVD-2026-85410","description":"MLflow's dspy flavor, versions \u003e= 2.0,  applies the MLFLOW_ALLOW_PICKLE_DESERIALIZATION=False security control only when the model_path ends in .pkl, which allows a remote attacker to execute arbitrary code via a crafted MLmodel artifact.","status":"published","published":"2026-09-23T16:28:59Z","modified":"2026-09-23T17:22:35Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T17:28:00.617613Z"}],"ghsa":[{"id":"GHSA-q5f3-5gj6-hmj7","title":"MLflow's dspy flavor, versions \u003e= 2.0,  applies the MLFLOW_ALLOW_PICKLE_DESERIALIZATION=False...","description":"MLflow's dspy flavor, versions \u003e= 2.0,  applies the MLFLOW_ALLOW_PICKLE_DESERIALIZATION=False security control only when the model_path ends in .pkl, which allows a remote attacker to execute arbitrary code via a crafted MLmodel artifact.","status":"published","published":"2026-09-23T18:31:57Z","modified":"2026-09-23T18:32:06Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T15:12:21.120874Z"}],"nvd":[{"id":"CVE-2026-96775","description":"MLflow's dspy flavor, versions \u003e= 2.0,  applies the MLFLOW_ALLOW_PICKLE_DESERIALIZATION=False security control only when the model_path ends in .pkl, which allows a remote attacker to execute arbitrary code via a crafted MLmodel artifact.","status":"published","published":"2026-09-23T17:17:25.407Z","modified":"2026-09-23T18:17:12.323Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:12:50.703874Z"}]}}
