CVE-2026-35492: 
Python vulnerability analysis and mitigation

Overview

CVE-2026-35492 is a path traversal vulnerability (CWE-22) in the PartitionedDataset component of the kedro-datasets Python package that allows authenticated attackers to write files to arbitrary locations on the filesystem. All versions of kedro-datasets prior to 9.3.0 are affected, regardless of storage backend (local filesystem, S3, GCS, etc.). The vulnerability was reported by security researcher "redyank" on March 16, 2026, patched on March 18, 2026, and publicly disclosed via GitHub Security Advisory on April 3, 2026. It carries a CVSS v3.1 base score of 6.5 (Medium) (GitHub Advisory, Kedro Advisory).

Technical details

The root cause is insufficient input validation in PartitionedDataset: partition IDs supplied by users or external input were concatenated directly with the dataset's configured base path without normalization or boundary checks (CWE-22). An attacker can craft a partition ID containing .. path traversal components (e.g., ../../etc/cron.d/malicious), causing the resulting file path to resolve outside the intended dataset directory. The fix, introduced in PR #1346, applies posixpath.normpath to the constructed path and verifies it remains within the base directory before use, raising a DatasetError if the check fails. posixpath was chosen specifically because PartitionedDataset uses fsspec for multi-backend support, requiring consistent POSIX-style path handling across local, S3, and GCS backends (GitHub Advisory, Fix PR).

Impact

Successful exploitation allows an authenticated, low-privileged attacker to write files to arbitrary locations on the filesystem, potentially overwriting critical system files, configuration files, or application code. This can escalate to remote code execution if an attacker overwrites executable scripts, cron jobs, or web-accessible files. Confidentiality and availability are not directly impacted by the vulnerability itself, but integrity is rated High; the attack surface extends to any storage backend supported by fsspec, including cloud object stores like S3 and GCS (GitHub Advisory, Kedro Advisory).

Exploitability

There is no confirmed in-the-wild exploitation of this vulnerability. A GitHub repository (https://github.com/redyank/CVE-2026-35492) was flagged as a potential PoC, but analysis determined it contains only a README with vulnerability description and patch information — no runnable exploit code or reproduction steps are present. The EPSS score is approximately 0.014–0.018%, indicating a very low probability of exploitation in the near term. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog (GitHub Advisory, Feedly).

Exploitation steps

  1. Identify target: Locate a system running kedro-datasets < 9.3.0 that uses PartitionedDataset and accepts externally-supplied partition IDs (e.g., via a data pipeline API or user-controlled input).
  2. Craft malicious partition ID: Construct a partition ID containing .. traversal sequences, such as ../../etc/cron.d/backdoor or ../../home/user/.ssh/authorized_keys, targeting a writable file outside the dataset directory.
  3. Trigger file write: Submit the crafted partition ID to the application so that PartitionedDataset processes it. The partition ID is concatenated with the base path without validation, resulting in a resolved path outside the configured dataset directory.
  4. Achieve arbitrary file write: The dataset writes attacker-controlled content to the traversed path (e.g., a cron job, SSH authorized key, or web shell), potentially enabling privilege escalation or remote code execution.
  5. Escalate (optional): If a cron job or executable was overwritten, wait for scheduled execution or trigger it to achieve code execution under the target process's privileges (GitHub Advisory, Fix PR).

Indicators of compromise

  • File System: Unexpected files created outside the configured PartitionedDataset base directory; modifications to sensitive files (e.g., /etc/cron.d/, ~/.ssh/authorized_keys, web root directories) with timestamps correlating to pipeline execution times.
  • Logs: Application logs showing DatasetError exceptions referencing path traversal (post-patch); pipeline execution logs with partition IDs containing .. sequences.
  • Process: Unexpected processes spawned by the application service account following pipeline runs (e.g., reverse shells, cron-triggered scripts).
  • Network: Outbound connections from the application server to unknown external IPs following pipeline execution, potentially indicating post-exploitation activity.

Mitigation and workarounds

The vulnerability is patched in kedro-datasets version 9.3.0; users should upgrade immediately using pip install 'kedro-datasets>=9.3.0'. For users unable to upgrade, the recommended workaround is to validate all partition IDs before passing them to PartitionedDataset, explicitly rejecting any IDs containing .. path components. The fix is available in commit 65115f7 and the release is tagged at kedro-datasets-9.3.0 (GitHub Advisory, Fix PR).

Community reactions

The vulnerability was discovered and responsibly disclosed by community researcher "redyank", who followed Kedro's security policy by filing a placeholder issue and sending a detailed report with proof of concept to maintainers via email. The Kedro maintainers responded promptly, merging the fix within two days of the report and coordinating CVE assignment and GHSA publication. Redyank was credited as the reporter in the official advisory, and the maintainers were praised for their quick response and coordinated disclosure approach (Fix PR, Kedro Advisory).

Additional resources


Source: This report was generated using AI

Related Python vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-v2f8-6655-7grjCRITICAL10
  • Python logoPython
  • vibe-trading-ai
NoYesOct 02, 2026
CVE-2026-105782HIGH7.5
  • Python logoPython
  • scrapy
NoYesOct 06, 2026
GHSA-v853-p72q-4cfwHIGH7.5
  • Python logoPython
  • quart
NoYesOct 05, 2026
CVE-2026-105751MEDIUM6.9
  • Python logoPython
  • docling
NoYesOct 05, 2026
CVE-2026-105750MEDIUM5.9
  • Python logoPython
  • docling
NoYesOct 05, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management