Ludwig framework is vulnerable to insecure deserialization in its model serving component
Critical severity
GitHub Reviewed
Published
May 12, 2026
to the GitHub Advisory Database
•
Updated May 27, 2026
Description
Published by the National Vulnerability Database
May 12, 2026
Published to the GitHub Advisory Database
May 12, 2026
Reviewed
May 27, 2026
Last updated
May 27, 2026
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.
References