前言 Keras 3 是一个多后端深度学习框架,支持 JAX、TensorFlow、PyTorch 和 OpenVINO(仅用于推理)。它可以轻松构建和训练用于计算机视觉、自然语言处理、音频处理、时间序列预测、推荐系统等领域的模型。
漏洞概述 Keras 3.11.3 版本在提取 tar 归档文件时,其 `keras.utils.get_file()` 函数存在路径遍历漏洞。该漏洞的产生是由于该函数使用了 Python 的 `tarfile.extractall()` 方法,但缺少安全关键参数 `filter='data'`。尽管 Keras 尝试使用 `filter_safe_paths()` 过滤不安全路径,但此过滤操作发生在提取之前,而提取过程中会触发一个 PATH_MAX 符号链接解析漏洞。该漏洞会导致符号链接解析因路径长度限制而失败,从而绕过安全机制,允许将文件写入预期提取目录之外。这可能导致缓存目录之外的任意文件写入,进而造成系统安全漏洞或恶意代码执行。该漏洞会影响使用 `get_file()` 处理 tar 归档文件的 Keras 安装,但不会影响使用适当过滤器参数保护此提取方法的版本。