CVE-2025-49655CVE-2025-49655是Keras深度学习框架中的一个高危反序列化漏洞,CVSS评分为9.8,属于严重级别。该漏洞影响Keras 3.11.0至3.11.3之前的所有版本。漏洞的根本原因在于Keras框架在加载模型文件时,未能充分验证文件中TorchModuleWrapper类的安全性,导致反序列化不可信数据时存在安全风险。攻击者可以构造恶意的Keras模型文件(.keras或.h5格式),其中包含精心设计的TorchModuleWrapper类,当目标用户加载该文件时,即使启用了Keras的安全模式(safe mode),恶意代码仍然会在用户系统上执行。该漏洞可通过本地文件和远程文件两种方式触发,攻击向量为网络(AV:N),无需认证(PR:N),无需用户交互(UI:N),对机密性、完整性和可用性均产生高影响。Keras作为广泛使用的深度学习框架,在学术研究、工业生产和AI应用开发中被大量部署,该漏洞的潜在影响范围非常广泛,可能导致数据泄露、系统入侵、模型投毒等严重后果。
Keras框架支持多种后端引擎,包括TensorFlow、PyTorch等。在与PyTorch后端集成时,Keras引入了TorchModuleWrapper类用于将PyTorch模块包装为Keras兼容层。然而,在版本3.11.0至3.11.3之前的实现中,该类的反序列化过程存在安全缺陷。
技术原理:
1. Keras模型以Keras文件格式保存时,会将模型的架构、权重和配置信息序列化存储。
2. 当用户加载模型文件时,Keras会反序列化其中的Python对象,包括TorchModuleWrapper实例。
3. 由于反序列化过程中未对类的方法调用进行充分限制,攻击者可以在TorchModuleWrapper的构造函数或__reduce__方法中注入恶意代码。
4. 即使用户启用了safe_mode=True参数,由于TorchModuleWrapper类不在安全模式阻止列表中,恶意代码仍能执行。
利用方式:
- 攻击者创建一个包含恶意TorchModuleWrapper类的Keras模型文件
- 通过网络上传或分发该文件
- 受害者使用受影响的Keras版本(3.11.0-3.11.2)加载该文件
- 恶意代码在加载过程中自动执行,攻击者可获得系统控制权
该漏洞的危害在于安全模式绕过——Keras的safe_mode本应阻止不安全的反序列化操作,但此漏洞完全绕过了这一保护机制。