CVE-2026-31238: n/a
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.
AI Analysis
Technical Summary
The Ludwig framework versions through 0.10.4 are vulnerable to insecure deserialization (CWE-502) due to the use of torch.load() without the weights_only=True parameter in the model serving component. This default behavior permits deserialization of arbitrary Python objects via pickle, enabling remote attackers to execute arbitrary code by supplying a maliciously crafted PyTorch model file to the ludwig serve command. The vulnerability has a CVSS 3.1 base score of 9.8, indicating critical severity with network attack vector, no required privileges or user interaction, and impacts confidentiality, integrity, and availability.
Potential Impact
Successful exploitation allows an attacker to execute arbitrary code on the system hosting the Ludwig model server, potentially leading to full system compromise. The vulnerability affects confidentiality, integrity, and availability of the affected system. There are no known exploits in the wild at this time.
Mitigation Recommendations
Patch status is not yet confirmed — no official fix or remediation guidance is currently available from the vendor. Users should monitor the vendor advisory for updates. Until a fix is released, avoid loading untrusted PyTorch model files with the ludwig serve command or consider manual mitigation by modifying the code to use torch.load() with weights_only=True if feasible.
CVE-2026-31238: n/a
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 v3.1
Score 9.8critical
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The Ludwig framework versions through 0.10.4 are vulnerable to insecure deserialization (CWE-502) due to the use of torch.load() without the weights_only=True parameter in the model serving component. This default behavior permits deserialization of arbitrary Python objects via pickle, enabling remote attackers to execute arbitrary code by supplying a maliciously crafted PyTorch model file to the ludwig serve command. The vulnerability has a CVSS 3.1 base score of 9.8, indicating critical severity with network attack vector, no required privileges or user interaction, and impacts confidentiality, integrity, and availability.
Potential Impact
Successful exploitation allows an attacker to execute arbitrary code on the system hosting the Ludwig model server, potentially leading to full system compromise. The vulnerability affects confidentiality, integrity, and availability of the affected system. There are no known exploits in the wild at this time.
Mitigation Recommendations
Patch status is not yet confirmed — no official fix or remediation guidance is currently available from the vendor. Users should monitor the vendor advisory for updates. Until a fix is released, avoid loading untrusted PyTorch model files with the ludwig serve command or consider manual mitigation by modifying the code to use torch.load() with weights_only=True if feasible.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- mitre
- Date Reserved
- 2026-03-09T00:00:00.000Z
- Cvss Version
- null
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a036531cbff5d861008c1c7
Added to database: 05/12/2026, 17:36:49 UTC
Last enriched: 05/20/2026, 18:41:25 UTC
Last updated: 07/31/2026, 19:22:58 UTC
Views: 51
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.