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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-35171
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 22:23 UTC · Revision 1
Source evidence
Arbitrary Code Execution via Malicious Logging Configuration in Kedro
core-osv · Original sourcePublished 6 Apr 2026, 17:45 UTC
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.
osv:CVE-2026-35171
Complete source record
{
"id": "3d03c83f4027eda61fdbac88e0f605ef07d406358320188f568605c931d770be",
"url": "https://osv.dev/vulnerability/CVE-2026-35171",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Arbitrary Code Execution via Malicious Logging Configuration in Kedro",
"summary": "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.",
"evidence": "osv:CVE-2026-35171",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2026-35171",
"aliases": [
"CVE-2026-35171",
"GHSA-9cqf-439c-j96r",
"PYSEC-2026-72"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/kedro-org/kedro",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "d1af1822687a438a0f3fba8913a919d06e02c298"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "1.3.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"cpe": "cpe:2.3:a:linuxfoundation:kedro:*:*:*:*:*:python:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "1.3.0"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"1.2.0",
"1.1.1",
"1.1.0",
"0.19.14",
"1.0.0",
"1.0.0rc3",
"1.0.0rc2",
"1.0.0rc1",
"0.19.13",
"0.19.12",
"0.19.11",
"0.19.10",
"0.19.9",
"0.19.8",
"0.19.7",
"0.19.6",
"0.19.0",
"0.19.1",
"0.19.2",
"0.19.3",
"0.19.4",
"0.19.5",
"0.18.14",
"0.18.13",
"0.18.12",
"0.18.11",
"0.18.10",
"0.18.9",
"0.18.8",
"0.18.7",
"0.18.6",
"0.18.5",
"0.18.4",
"0.18.3",
"0.18.2",
"0.18.1",
"0.18.0",
"0.17.7",
"0.17.6",
"0.17.5",
"0.17.4",
"0.17.3",
"0.17.2",
"0.17.1",
"0.17.0",
"0.16.6",
"0.16.5",
"0.16.4",
"0.16.3",
"0.16.2",
"0.16.1",
"0.16.0",
"0.15.9",
"0.15.8",
"0.15.7",
"0.15.6",
"0.15.5",
"0.15.4",
"0.15.3",
"0.15.2",
"0.15.1",
"0.15.0",
"0.14.3",
"0.14.2",
"0.14.1",
"0.14.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-35171.json"
}
}
],
"modified": "2026-10-28T02:30:40.048388453Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/35xxx/CVE-2026-35171.json",
"https://github.com/kedro-org/kedro/security/advisories/GHSA-9cqf-439c-j96r",
"https://nvd.nist.gov/vuln/detail/CVE-2026-35171"
],
"provider_metadata": {
"cwe_ids": [
"CWE-502",
"CWE-94"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/35xxx/CVE-2026-35171.json"
}
},
"related_cves": [
{
"value": "CVE-2026-35171",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 507574,
"published_at": "2026-04-06T17:45:45.664+00:00"
}