CVE-2026-31238Ludwig框架0.10.4及之前版本在模型服务组件中存在不安全反序列化漏洞(CWE-502)。当使用`ludwig serve`启动模型服务器时,框架使用`torch.load()`加载模型权重文件,默认未启用安全限制参数`weights_only=True`。此行为允许通过pickle模块反序列化任意Python对象。攻击者可利用此漏洞提供恶意构造的PyTorch模型文件,导致在托管Ludwig模型服务器的系统上执行任意代码。
该漏洞根源在于Ludwig框架对PyTorch模型文件的不安全加载机制。在深度学习工作流中,模型权重通常使用Python的pickle模块进行序列化存储。`torch.load()`函数默认会反序列化pickle数据,而pickle在反序列化过程中会执行对象的`__reduce__`方法,这可能导致任意代码执行。Ludwig在实现`ludwig serve`功能时,直接调用了`torch.load()`而没有设置`weights_only=True`(该参数旨在仅加载张量数据,禁止加载任意Python对象)。由于模型服务通常暴露在网络接口上,且无需认证(PR:N),攻击者可以向服务端发送特制的恶意`.pt`或`.pth`文件。一旦服务端尝试加载该文件,其中的恶意payload将被反序列化并执行,从而在服务器端获得命令执行权限。