Keras get_file API存在路径遍历漏洞,可导致任意文件写入

Keras 3.11.3版本的keras.utils.get_file()函数在处理tar归档文件时存在路径遍历漏洞,攻击者可利用此漏洞在缓存目录外写入任意文件,可能导致系统被破坏或恶意代码执行。该漏洞已被分配编号CVE-2025-12638。

漏洞详情

重复公告 本公告已被撤销,因为它是GHSA-hjqc-jx6g-rwp9的重复公告。保留此链接是为了维护外部引用。

原始描述 Keras 3.11.3版本受到keras.utils.get_file()函数在提取tar归档文件时的路径遍历漏洞影响。该漏洞的产生是因为该函数使用了Python的tarfile.extractall()方法,但未设置关键的安全参数filter='data'。尽管Keras试图使用filter_safe_paths()来过滤不安全的路径,但这种过滤发生在提取之前,并且在提取过程中会触发一个PATH_MAX符号链接解析错误。该错误由于路径长度限制导致符号链接解析失败,从而引发安全绕过,允许文件被写入预期提取目录之外。这可能导致任意文件被写入缓存目录外,从而可能引发系统破坏或恶意代码执行。该漏洞影响使用get_file()处理tar归档文件的Keras安装,不影响已使用适当的filter参数保护此提取方法的版本。

参考链接

影响范围

软件包 pip - Keras (pip)

受影响版本 < 3.12.0

已修复版本 3.12.0

安全评分

严重性:高 CVSS 整体得分:8.0 / 10

CVSS v3 基础指标

  • 攻击向量:网络
  • 攻击复杂度:低
  • 所需权限:低
  • 用户交互:需要
  • 作用范围:未改变
  • 机密性影响:高
  • 完整性影响:高
  • 可用性影响:高

CVSS向量:CVSS:3.0/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H

EPSS 分数 0.033% (第9百分位数)

弱点类型

CWE-22 路径遍历:产品使用外部输入来构造一个旨在标识位于受限父目录下的文件或目录的路径名,但产品未能正确中和路径名中的特殊元素,这些元素可能导致路径名解析到受限目录之外的位置。

标识符

  • CVE ID: CVE-2025-12638
  • GHSA ID: GHSA-9g7v-8wxv-mwxp

时间线

  • 由国家漏洞数据库发布:2025年11月28日
  • 发布至GitHub公告数据库:2025年11月28日
  • 最后更新:2025年12月2日
  • 审核:2025年12月2日
  • 撤销:2025年12月2日
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计