Skip to content
Heist/ feed
Back to feed
Critical

Arbitrary Code Execution via Malicious Logging Configuration in Kedro

Type: advisorySources: OSV

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 source

Published 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"
}