CVE-2026-31237CRITICAL 9.8EPSS p44.0%
CVE-2026-31237CVE-2026-31237
Description
The Ludwig framework thru 0.10.4 is vulnerable to insecure deserialization (CWE-502) through its predict() method. When a user provides a dataset file path to the predict() method, the framework automatically determines the file format. If the file is a pickle (.pkl) file, it is loaded using pandas.read_pickle() without any validation or security restrictions. This allows the deserialization of arbitrary Python objects via the unsafe pickle module. A remote attacker can exploit this by providing a maliciously crafted pickle file, leading to arbitrary code execution on the system running the Ludwig prediction.
Scoring
| CVSS 3.1 | 9.8 (CRITICAL) |
| Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| EPSS | 0.60% probability of exploitation · percentile 44.0% · 2026-06-18T12:00:27Z |
| Published | 2026-05-12 |
| Last modified | 2026-05-14 |
Underlying weaknesses· 1
References
1
| Type | Target | Confidence | Tier |
|---|---|---|---|
| Weakness | Deserialization of Untrusted Datacwe-502 | 0% | live |
Related by meaning· 6
Nearest entities by semantic similarity across the cs-graph corpus.