Executive brief
Ludwig is an automated machine learning framework used to build and deploy AI models. A security vulnerability exists where the system incorrectly handles certain data files during the prediction process. If an attacker provides a specially crafted data file, they can take complete control of the system running the software, potentially leading to data theft or service disruption.
Technical details
Ludwig (up to version 0.10.4) is vulnerable to insecure deserialization (CWE-502) within its predict() method. When a dataset file path is provided, the framework automatically identifies the file format; if a .pkl file is detected, it is processed using pandas.read_pickle() without validation. Because the underlying Python pickle module is inherently unsafe, an attacker can craft a malicious pickle file that executes arbitrary code upon deserialization. This can be triggered remotely if the application exposes the prediction interface to untrusted input, requiring no authentication or user interaction. As of the advisory date, no patched version has been identified.
Affected products
- ludwig-ai ludwig <= 0.10.4
Timeline
- 2026-05-12: disclosed: CVE-2026-31237 published
- 2026-05-12: advisory: GHSA-wcr3-gm9f-f87q published