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.
Published: 2026-05-12
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Ludwig framework up to version 0.10.4 defaults to loading model weight files with torch.load() without the security‑restrictive weights_only=True flag. This oversight permits the deserialization of arbitrary Python objects via the pickle module, a classic insecure deserialization flaw (CWE‑502). An attacker who can supply a maliciously crafted PyTorch model file is able to execute arbitrary code on the machine that starts the Ludwig model server, compromising confidentiality, integrity, and availability of the entire host system.

Affected Systems

The vulnerability impacts all installations of the Ludwig framework through version 0.10.4 when the serve command is used to start a model server. No specific vendor or product list is provided by the CNA, but anyone deploying Ludwig models with the default configuration of the serve component is at risk.

Risk and Exploitability

The vulnerability has no publicly published CVSS score or EPSS estimate, but the described flaw enables remote or local code execution depending on the attacker’s ability to introduce a malicious model file. Since the attack requires only that the server process load the file, an attacker with network or local access to the model serving endpoint could trigger the exploit. The vulnerability is not listed in the CISA KEV catalog, but its severity is high because arbitrary code execution can lead to complete system compromise. In the absence of a CVSS score, the risk assessment relies on the nature of insecure deserialization and the potential for full exploitation.

Generated by OpenCVE AI on May 12, 2026 at 18:27 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade your Ludwig installation to version 0.10.5 or newer, where torch.load() is called with the weights_only=True parameter to prevent arbitrary object deserialization.
  • If an upgrade is not immediately feasible, patch the model serving code or configuration to enforce weights_only=True when loading model weight files, ensuring that no arbitrary Python objects are deserialized.
  • Restrict the world of accepted model files by validating signatures or checksums, and run the Ludwig model server with the least privilege necessary; consider isolating the service in a sandboxed environment or restricting network exposure.

Generated by OpenCVE AI on May 12, 2026 at 18:27 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 12 May 2026 18:45:00 +0000

Type Values Removed Values Added
Title Insecure Deserialization in Ludwig Model Serving Enables Arbitrary Code Execution
Weaknesses CWE-502

Tue, 12 May 2026 17:30:00 +0000

Type Values Removed Values Added
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.
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: mitre

Published:

Updated: 2026-05-12T17:15:17.362Z

Reserved: 2026-03-09T00:00:00.000Z

Link: CVE-2026-31238

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-05-12T18:16:52.210

Modified: 2026-05-12T18:16:52.210

Link: CVE-2026-31238

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-12T18:30:22Z

Weaknesses