Keras 3 中存在严重RCE漏洞(CVE-2025-49655,CVSS 9.8),模型加载时可致攻击代码执行

阅读量6922

发布时间 : 2025-10-20 17:47:31

x
译文声明

本文是翻译文章,文章原作者 Ddos,文章来源:securityonline

原文地址:https://securityonline.info/critical-keras-3-rce-flaw-cve-2025-49655-cvss-9-8-allows-code-execution-on-model-load/

译文仅供参考,具体内容表达以及含义原文为准。

HiddenLayer的研究人员披露了Keras 3深度学习框架中一个严重的任意代码执行漏洞(CVE-2025-49655,CVSS 9.8),该漏洞影响Keras 3.11.0至3.11.2版本的Torch后端。漏洞源于TorchModuleWrapper类中的不安全反序列化,攻击者可能仅通过加载恶意模型文件即可执行任意系统命令——即使启用了Keras的“安全模式”

根据HiddenLayer的报告:“TorchModuleWrapper类中存在任意代码执行漏洞,原因是其在from_config方法中使用了torch.load() 。”

核心问题在于该方法调用了:

torch.load(buffer,  weights_only=False)  

其中weights_only标志被显式设置为False。此参数指示PyTorch回退到Python的pickle模块进行反序列化——这是一种已知的不安全机制,在对象加载过程中可能执行任意Python函数

研究人员解释:“由于pickle已知不安全,且在反序列化过程中可执行任意代码,恶意构造的模型文件可能允许攻击者执行任意命令。”

HiddenLayer通过构造一个简单的 payload 类演示了漏洞利用,该类滥用Python的__reduce__方法,在反序列化时调用os.system() 。

概念验证:从配置到代码执行

概念验证(PoC)包括通过base64编码恶意对象,将其嵌入TorchModuleWrapper配置,然后调用from_config()触发反序列化链。执行后,系统会运行任意shell命令,证明完全的本地代码执行能力。

安全模式失效与模型文件武器化

HiddenLayer的研究警告,该漏洞的影响不仅限于开发阶段的误用。攻击者可将合法Keras模型文件(.keras)武器化以隐藏载荷

“攻击者可将相同的恶意载荷嵌入模型配置,因此任何加载该模型的用户,即使在‘安全’模式下,也会触发漏洞利用。”

通过在模型的config.json 中插入序列化的恶意对象,受害者加载模型时载荷会自动执行——即使启用了旨在限制加载期间不安全操作的safe_mode=True

受影响版本与范围

HiddenLayer确认Keras 3.11.0至3.11.2版本存在漏洞。该问题影响使用PyTorch作为后端的系统(KERAS_BACKEND=”torch”),而使用JAX、TensorFlow或OpenVINO的配置不受影响。

由于Keras广泛用于研究、学术和生产环境的机器学习管道,此漏洞对机器学习供应链安全构成高影响威胁。HiddenLayer将其归类为CVSS 9.8严重级漏洞,并指出:“任何加载此恶意模型的用户都会在不知情的情况下在其机器上执行任意命令。”

本文翻译自securityonline 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

文章目录
Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66