# CVE-2024-9701: Kedro insecure deserialization in ShelveStore

Source: https://junglewise.ai/threats/cve-2024-9701-kedro-insecure-deserialization-in-shelvestore  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2025-03-20. Updated: 2026-07-06  
License: CC BY 4.0 with a link back

CVE-2024-9701 · Severity: critical · CVSS 9.8 · Published 2025-03-20

Kedro, a Python framework for creating reproducible data pipelines, contains a critical security flaw in its session management component. An attacker can exploit this to run unauthorized commands on the server hosting the application. This could lead to a complete system takeover, theft of sensitive data, or disruption of data processing operations.

Technologies: [kedro (PyPI)](https://junglewise.ai/threats/technologies/kedro). Vendors: [PyPI](https://junglewise.ai/threats/vendors/pypi).

## Quick answers

**Is CVE-2024-9701 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2024-9701 being exploited in the wild.

**How severe is CVE-2024-9701?** Critical severity, with a CVSS score of 9.8, published 20 March 2025.

**Which products and versions are affected?** kedro (PyPI) < 0.19.9, ECOSYSTEM:introduced=0,fixed=0.19.9.

**Is there a fix for CVE-2024-9701?** Yes. kedro (PyPI): upgrade to 0.19.9 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2024-9701 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2024-9701?** Check whether you run kedro (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- kedro (PyPI): upgrade to 0.19.9 or later

  ```sh
  pip install "kedro>=0.19.9"
  ```


## Technical details

A deserialization vulnerability exists in the Kedro ShelveStore class due to its reliance on Python's 'shelve' module, which uses the 'pickle' library for data serialization. Because pickle is inherently insecure when processing untrusted data, an attacker can craft a malicious payload that, when stored and subsequently deserialized by the ShelveStore class, executes arbitrary Python code. The vulnerability is reachable over the network without authentication if the application exposes session management functionality. The issue was addressed in version 0.19.9 by removing the vulnerable ShelveStore class.

## Affected products

- kedro-org kedro < 0.19.9

## Identifiers

- CVE-2024-9701
- GHSA-747f-ww56-4q4h
- PYSEC-2026-367

## Timeline

- 2025-03-20: disclosed
- 2025-03-20: advisory
- 2025-03-21: other: GitHub advisory reviewed

## References

- [https://huntr.com/bounties/96c77fef-93b2-4d4d-8cbe-57a718d8eea5](https://huntr.com/bounties/96c77fef-93b2-4d4d-8cbe-57a718d8eea5)
- [https://github.com/kedro-org/kedro/commit/66e5e074b2789469550370f370c8b486f638d975](https://github.com/kedro-org/kedro/commit/66e5e074b2789469550370f370c8b486f638d975)
- [https://github.com/pypa/advisory-database/tree/main/vulns/kedro/PYSEC-2026-367.yaml](https://github.com/pypa/advisory-database/tree/main/vulns/kedro/PYSEC-2026-367.yaml)

## Related threats

- [PYSEC-2026-1485 - Kedro allows Remote Code Execution by Pulling Micro Packages](https://junglewise.ai/threats/cve-2024-12215-kedro-allows-remote-code-execution-by-pulling-micro-packages)
- [Kedro remote code execution via logging configuration](https://junglewise.ai/threats/cve-2026-35171-kedro-remote-code-execution-via-logging-configuration)
- [Kedro path traversal in versioned dataset loading](https://junglewise.ai/threats/cve-2026-35167-kedro-path-traversal-in-versioned-dataset-loading)
