CVE-2026-31222Snorkel库v0.10.0及之前版本在Trainer.load()方法中存在不安全的反序列化漏洞。该漏洞源于使用了torch.load()加载模型且未限制加载内容,攻击者可诱导受害者加载特制的恶意模型文件,利用Pickle机制反序列化任意对象,最终导致在受害者系统上远程执行任意代码。
该漏洞位于Snorkel库的Trainer类load()方法中。该方法默认使用PyTorch的torch.load()函数来加载模型检查点文件,而torch.load()底层机制依赖于Python的pickle模块。由于开发者在实现时未启用安全限制参数`weights_only=True`,导致反序列化过程缺乏必要的校验。攻击者可以利用pickle协议的特性,构造包含恶意Python指令的特制模型文件。此漏洞利用路径为网络攻击向量,虽然需要用户交互(如诱导用户加载恶意文件),但一旦受害者调用Trainer.load()加载该文件,恶意代码便会在反序列化过程中自动执行,从而获取系统控制权,造成严重的安全后果。