GitHub Advisoryadvisory · PyPI

GHSA-6326-w46w-ppjw Kedro: Path Traversal in versioned dataset loading via unsanitized version string

HIGH Published 2026-04-03 Modified 2026-06-06 Official page ↗
Aliases
CVE-2026-35167
Ecosystem
PyPI
Packages
kedro
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
Weaknesses
CWE-22
Reviewed
2026-04-03

Affected packages

• PyPI kedro: < 1.3.0 → fixed in 1.3.0

Description

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.

Related

Alias · CVE (1)

  • CVE-2026-35167 Kedro is a toolbox for production-ready data science. vulnerability

Weakness · CWE (1)

  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory weakness

References