CVE-2026-35167

Kedro has a path traversal in versioned dataset loading via unsanitized version string

Published Apr 6, 2026 CVSS 3.1 · 7.1 High EPSS < 1% KEV · Not listed
Description
Kedro is a toolbox for production-ready data science. Prior to 1.3.0, the _get_versioned_path() method in kedro/io/core.py constructs filesystem paths by directly interpolating user-supplied version strings without sanitization. Because version strings are used as path components, traversal sequences such as ../ are preserved and can escape the intended versioned dataset directory.
This is reachable through multiple entry points: catalog.load(..., version=...), DataCatalog.from_config(..., load_versions=...), and the CLI via kedro run --load-versions=dataset:../../../secrets. An attacker who can influence the version string can force Kedro to load files from outside the intended version directory, enabling unauthorized file reads, data poisoning, or cross-tenant data access in shared environments. This vulnerability is fixed in 1.3.0.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-6326-w46w-ppjw Kedro: Path Traversal in versioned dataset loading via unsanitized version string
History
Type Values Removed Values Added
First Time appeared Linuxfoundation
Linuxfoundation kedro
CPEs cpe:2.3:a:linuxfoundation:kedro:*:*:*:*:*:python:*:*
Vendors & Products Linuxfoundation
Linuxfoundation kedro
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Kedro-org
Kedro-org kedro
Vendors & Products Kedro-org
Kedro-org kedro
Type Values Removed Values Added
Description Kedro is a toolbox for production-ready data science. Prior to 1.3.0, the _get_versioned_path() method in kedro/io/core.py constructs filesystem paths by directly interpolating user-supplied version strings without sanitization. Because version strings are used as path components, traversal sequences such as ../ are preserved and can escape the intended versioned dataset directory. This is reachable through multiple entry points: catalog.load(..., version=...), DataCatalog.from_config(..., load_versions=...), and the CLI via kedro run --load-versions=dataset:../../../secrets. An attacker who can influence the version string can force Kedro to load files from outside the intended version directory, enabling unauthorized file reads, data poisoning, or cross-tenant data access in shared environments. This vulnerability is fixed in 1.3.0.
Title Kedro has a path traversal in versioned dataset loading via unsanitized version string
Weaknesses CWE-22
References
Metrics cvssV3_1

{'score': 7.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Apr 7, 2026, 2:36 PM
Reserved
Apr 1, 2026, 5:26 PM
Status
Analyzed
Published
Apr 6, 2026, 6:16 PM
Modified
Oct 23, 2026, 11:10 PM