Every CVE Search/ Get API key

CVE-2026-35171

Arbitrary Code Execution via Malicious Logging Configuration in Kedro

9.8 CriticalFix available

Kedro is a toolbox for production-ready data science. Prior to 1.3.0, Kedro allows the logging configuration file path to be set via the KEDRO_LOGGING_CONFIG environment variable and loads it without validation. The logging configuration schema supports the special () key, which enables arbitrary callable instantiation. An attacker can exploit this to execute arbitrary system commands during application startup. This is a critical remote code execution (RCE) vulnerability caused by unsafe use of logging.config.dictConfig() with user-controlled input. This vulnerability is fixed in 1.3.0.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.73%Up 0.4 points since Apr 7, 2026
90%50%10%1%

What each source reports

CVE List Score used 9.8

Arbitrary Code Execution via Malicious Logging Configuration in Kedro

Kedro is a toolbox for production-ready data science. Prior to 1.3.0, Kedro allows the logging configuration file path to be set via the KEDRO_LOGGING_CONFIG environment variable and loads it without validation. The logging configuration schema supports the special () key, which enables arbitrary callable instantiation. An attacker can exploit this to execute arbitrary system commands during application startup. This is a critical remote code execution (RCE) vulnerability caused by unsafe use of logging.config.dictConfig() with user-controlled input. This vulnerability is fixed in 1.3.0.

Record
CVE-2026-35171
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-94, CWE-502
Updated
2026-11-02
EUVDEUVD-2026-19418 9.8

Kedro is a toolbox for production-ready data science. Prior to 1.3.0, Kedro allows the logging configuration file path to be set via the KEDRO_LOGGING_CONFIG environment variable and loads it without validation. The logging configuration schema supports the special () key, which enables arbitrary callable instantiation. An attacker can exploit this to execute arbitrary system commands during application startup. This is a critical remote code execution (RCE) vulnerability caused by unsafe use of logging.config.dictConfig() with user-controlled input. This vulnerability is fixed in 1.3.0.

Record
EUVD-2026-19418
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-9cqf-439c-j96r 9.8

Kedro has Arbitrary Code Execution via Malicious Logging Configuration

Impact

This is a critical remote code execution (RCE) vulnerability caused by unsafe use of logging.config.dictConfig() with user-controlled input.

Kedro allows the logging configuration file path to be set via the KEDRO_LOGGING_CONFIG environment variable and loads it without validation. The logging configuration schema supports the special () key, which enables arbitrary callable instantiation. An attacker can exploit this to execute arbitrary system commands during application startup.


Patches

The vulnerability is fixed by introducing validation that rejects the unsafe () factory key in logging configurations before passing them to dictConfig().

Fixed in

  • Kedro 1.3.0

Users should upgrade to this version as soon as possible.


Workarounds

If upgrading is not immediately possible:

  • Do not allow untrusted input to control the KEDRO_LOGGING_CONFIG environment variable
  • Restrict write access to logging configuration files
  • Avoid using externally supplied or dynamically generated logging configs
  • Manually validate logging YAML to ensure it does not contain the () key

These mitigations reduce risk but do not fully eliminate it.


References

Record
GHSA-9cqf-439c-j96r
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-94, CWE-502
Updated
2026-11-02
NVD 9.8

Kedro is a toolbox for production-ready data science. Prior to 1.3.0, Kedro allows the logging configuration file path to be set via the KEDRO_LOGGING_CONFIG environment variable and loads it without validation. The logging configuration schema supports the special () key, which enables arbitrary callable instantiation. An attacker can exploit this to execute arbitrary system commands during application startup. This is a critical remote code execution (RCE) vulnerability caused by unsafe use of logging.config.dictConfig() with user-controlled input. This vulnerability is fixed in 1.3.0.

Record
CVE-2026-35171
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-94, CWE-502
Updated
2026-11-02
OSV 9.8

Arbitrary Code Execution via Malicious Logging Configuration in Kedro

Kedro is a toolbox for production-ready data science. Prior to 1.3.0, Kedro allows the logging configuration file path to be set via the KEDRO_LOGGING_CONFIG environment variable and loads it without validation. The logging configuration schema supports the special () key, which enables arbitrary callable instantiation. An attacker can exploit this to execute arbitrary system commands during application startup. This is a critical remote code execution (RCE) vulnerability caused by unsafe use of logging.config.dictConfig() with user-controlled input. This vulnerability is fixed in 1.3.0.

Record
CVE-2026-35171
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-502, CWE-94
Updated
2026-11-02
OSVGHSA-9cqf-439c-j96r 9.8

Kedro has Arbitrary Code Execution via Malicious Logging Configuration

Impact

This is a critical remote code execution (RCE) vulnerability caused by unsafe use of logging.config.dictConfig() with user-controlled input.

Kedro allows the logging configuration file path to be set via the KEDRO_LOGGING_CONFIG environment variable and loads it without validation. The logging configuration schema supports the special () key, which enables arbitrary callable instantiation. An attacker can exploit this to execute arbitrary system commands during application startup.


Patches

The vulnerability is fixed by introducing validation that rejects the unsafe () factory key in logging configurations before passing them to dictConfig().

Fixed in

  • Kedro 1.3.0

Users should upgrade to this version as soon as possible.


Workarounds

If upgrading is not immediately possible:

  • Do not allow untrusted input to control the KEDRO_LOGGING_CONFIG environment variable
  • Restrict write access to logging configuration files
  • Avoid using externally supplied or dynamically generated logging configs
  • Manually validate logging YAML to ensure it does not contain the () key

These mitigations reduce risk but do not fully eliminate it.


References

Record
GHSA-9cqf-439c-j96r
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-502, CWE-94
Updated
2026-11-02
OSVPYSEC-2026-72 9.8

Kedro is a toolbox for production-ready data science. Prior to 1.3.0, Kedro allows the logging configuration file path to be set via the KEDRO_LOGGING_CONFIG environment variable and loads it without validation. The logging configuration schema supports the special () key, which enables arbitrary callable instantiation. An attacker can exploit this to execute arbitrary system commands during application startup. This is a critical remote code execution (RCE) vulnerability caused by unsafe use of logging.config.dictConfig() with user-controlled input. This vulnerability is fixed in 1.3.0.

Record
PYSEC-2026-72
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
kedro
PyPI
before 1.3.0
1.3.0
kedro
PyPI
before 1.3.0, plus listed versions
0.14.00.14.10.14.20.14.30.15.0
Show 45 moreShow less
0.15.10.15.20.15.30.15.40.15.50.15.60.15.70.15.80.15.90.16.00.16.10.16.20.16.30.16.40.16.50.16.60.17.00.17.10.17.20.17.30.17.40.17.50.17.60.17.70.18.00.18.10.18.100.18.110.18.120.18.130.18.140.18.20.18.30.18.40.18.50.18.60.18.70.18.80.18.90.19.00.19.10.19.100.19.110.19.120.19.13
1.3.0

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-35171 is a critical vulnerability (CVSS 9.8) in Kedro-org Kedro, published April 3, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.73%, the 54th percentile. Fixed in kedro 1.3.0.

References

This page doesn't list everything

Left out here: 17 versions. The JSON record has them.

MoveEnter Open