IPBUF安全漏洞报告
English
CVE-2026-35167 CVSS 7.1 高危

CVE-2026-35167 Kedro路径遍历漏洞

披露日期: 2026-04-06

漏洞信息

漏洞编号
CVE-2026-35167
漏洞类型
路径遍历
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Kedro

相关标签

路径遍历KedroCWE-22数据安全

漏洞概述

Kedro 1.3.0之前的版本中存在路径遍历漏洞。由于`kedro/io/core.py`中的`_get_versioned_path`方法在构造文件系统路径时,直接对用户提供的版本字符串进行插值且未进行清理,攻击者可通过包含`../`等遍历序列的版本字符串逃逸预期的版本数据集目录。该漏洞可通过多种入口触发,导致未经授权的文件读取、数据投毒或跨租户数据访问。

技术细节

该漏洞的根本原因在于Kedro在处理数据集版本控制时的路径构建逻辑存在缺陷。具体而言,`kedro/io/core.py`文件中的`_get_versioned_path`方法直接将用户输入的`version`参数拼接到文件路径中,未对`../`等路径遍历字符进行过滤或标准化处理。攻击者可以通过以下入口利用此漏洞:调用`catalog.load()`并指定恶意的`version`参数;通过`DataCatalog.from_config()`配置加载版本;或使用CLI命令`kedro run --load-versions=dataset:../../../secrets`。通过构造包含路径遍历序列的版本字符串,攻击者能够绕过预期的目录限制,读取系统上的任意文件(如敏感密钥),甚至可能导致数据投毒,从而影响数据的完整性和机密性。

攻击链分析

STEP 1
侦察
攻击者确认目标应用使用了存在漏洞的Kedro版本(< 1.3.0),并找到了可交互的入口点(如CLI或API接口)。
STEP 2
武器化
攻击者构造包含路径遍历序列(如"../")的恶意版本字符串,旨在访问预期目录之外的敏感文件(如"../../../secrets")。
STEP 3
交付
攻击者通过API调用(catalog.load)或CLI参数(kedro run --load-versions)将恶意版本字符串发送给应用程序。
STEP 4
利用
应用程序的`_get_versioned_path`方法处理该字符串时未进行过滤,直接拼接路径,导致系统读取并返回非预期的文件内容。
STEP 5
影响
攻击者成功获取敏感信息(数据泄露),或利用该机制进行数据投毒,破坏应用完整性。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-35167: Path Traversal in Kedro # The vulnerability allows reading files outside the intended versioned directory. # Method 1: CLI usage # An attacker can execute the following command to read 'secrets' file from parent directories # Command: kedro run --load-versions=my_dataset:../../../etc/passwd # Method 2: Python API usage from kedro.io import DataCatalog # Assuming a dataset is configured in the catalog # An attacker with control over the 'version' parameter can trigger the path traversal # Malicious version string containing '../' to escape the dataset directory malicious_version = "../../../etc/passwd" # This triggers _get_versioned_path() without sanitization # catalog.load("my_dataset", version=malicious_version) # print("If vulnerable, file content is returned.")

影响范围

Kedro < 1.3.0

防御指南

临时缓解措施
如果暂时无法升级,应严格限制对Kedro CLI的访问权限,避免将不可信的输入直接用作版本字符串。在应用层面对传入的`version`参数进行过滤,移除`../`等特殊字符。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表