PT-2026-30018 · Pypi · Kedro
Published
2026-04-03
·
Updated
2026-04-03
·
CVE-2026-35167
CVSS v3.1
7.1
High
| AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N |
Impact
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.Patches
Yes. Fixed in kedro version 1.3.0. Users should upgrade to kedro >= 1.3.0.
Workarounds
Validate version strings before passing them to DataCatalog or the CLI, ensuring they do not contain
.. segments, path separators, or absolute paths.Fix
Path traversal
Found an issue in the description? Have something to add? Feel free to write us 👾
Weakness Enumeration
Related Identifiers
Affected Products
Kedro