CVE-2026-0897CVE-2026-0897是Google Keras 3.0.0至3.13.0版本中存在的资源分配无限制漏洞。该漏洞位于Keras的HDF5权重加载组件中,攻击者可以通过构造恶意的.keras存档文件来触发此漏洞。具体来说,攻击者在model.weights.h5文件中声明一个极大的数据集shape,导致Keras在加载权重时尝试分配巨大的内存空间,最终造成内存耗尽和Python解释器崩溃,从而实现拒绝服务攻击。此漏洞无需任何认证或用户交互即可被远程利用,CVSS评分7.5,属于高危漏洞。攻击者只需诱骗目标用户加载一个看似正常的.keras模型文件即可发动攻击,攻击复杂度低,危害性大。
该漏洞的根本原因在于Keras的HDF5权重加载组件缺乏对数据集shape的合理验证。当加载.keras存档文件时,Keras会读取model.weights.h5文件中声明的维度信息来分配内存。攻击者可以通过在HDF5文件中设置极大的shape值(如数百万或数十亿),使得Keras尝试分配远超系统可用内存的空间。由于Python的内存分配机制,这种过大的内存请求会导致系统内存耗尽,触发OOM Killer或直接导致Python解释器崩溃。攻击者只需要创建一个包含有效HDF5权重文件的.keras存档,并确保其中的数据集声明一个极大的shape即可。Keras在3.0版本引入的全新权重加载机制存在此安全缺陷,未对用户可控的shape参数进行边界检查。