Vulnerability Description
The Ludwig framework thru 0.10.4 is vulnerable to insecure deserialization (CWE-502) in its model serving component. When starting a model server with the ludwig serve command, the framework loads model weight 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. An attacker can exploit this by providing a maliciously crafted PyTorch model file, leading to arbitrary code execution on the system hosting the Ludwig model server.
CVSS Score
CRITICAL
Related Weaknesses (CWE)
References
- https://github.com/ludwig-ai/ludwig
- https://www.notion.so/CVE-2026-31238-35d1e1393188819ea77ee98ca85a2878
FAQ
What is CVE-2026-31238?
CVE-2026-31238 is a vulnerability with a CVSS score of 9.8 (CRITICAL). The Ludwig framework thru 0.10.4 is vulnerable to insecure deserialization (CWE-502) in its model serving component. When starting a model server with the ludwig serve command, the framework loads mod...
How severe is CVE-2026-31238?
CVE-2026-31238 has been rated CRITICAL with a CVSS base score of 9.8/10. This is considered a critical vulnerability requiring immediate attention.
Is there a patch for CVE-2026-31238?
Check the references section above for vendor advisories and patch information. Review vendor security bulletins for remediation guidance.