{"schema":"threatline.record/2","record":{"id":"CVE-2026-111170","aliases":["CVE-2026-35492","GHSA-cjg8-h5qc-hrjv","PYSEC-2026-2545"],"summary":"kedro-datasets 9.3.0 through 9.6.0 Path Traversal via MatplotlibDataset Plot Name","details":"kedro-datasets from 9.3.0 through 9.6.0 contains a path traversal vulnerability in MatplotlibDataset.save() that allows attackers to write files outside the dataset directory by supplying absolute plot names. Because validate_sub_path() strips leading slashes while pathlib's join discards the base path, attackers can create or overwrite files anywhere the process can write.","categories":["Libraries & packages"],"product":"kedro-datasets","vendor":"kedro-org","ecosystem":"PyPI","affected_ranges":[{"source":"CVE List","source_url":"https://www.cve.org/CVERecord?id=CVE-2026-111170","source_modified_at":"2026-10-21T01:30:43.369Z","fetched_at":"2026-10-23T18:45:31.882637Z","product":"kedro-datasets","vendor":"kedro-org","versions":[{"version":"9.3.0","lessThanOrEqual":"9.6.0","status":"affected","versionType":"semver"}],"defaultStatus":"unaffected"},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-cjg8-h5qc-hrjv","source_modified_at":"2026-10-16T10:55:54.308430209Z","fetched_at":"2026-10-23T18:45:31.882637Z","package":{"name":"kedro-datasets","ecosystem":"PyPI","purl":"pkg:pypi/kedro-datasets"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.3.0"}]}],"versions":["0.0.1","0.0.2","0.0.3","0.0.4","0.0.5","0.0.6","0.0.7","1.0.0","1.0.1","1.0.2","1.1.0","1.1.1","1.2.0","1.3.0","1.4.0","1.4.1","1.4.2","1.5.0","1.5.1","1.5.2","1.5.3","1.6.0","1.7.0","1.7.1","1.8.0","2.0.0","2.1.0","3.0.0","3.0.1","4.0.0","4.1.0","5.0.0","5.1.0","6.0.0","7.0.0","8.0.0","8.1.0","9.0.0","9.1.0","9.1.1","9.2.0"]}],"fixed_versions":[{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-cjg8-h5qc-hrjv","source_modified_at":"2026-10-16T10:55:54.308430209Z","fetched_at":"2026-10-23T18:45:31.882637Z","package":{"name":"kedro-datasets","ecosystem":"PyPI","purl":"pkg:pypi/kedro-datasets"},"version":"9.3.0"}],"cvss":7.1,"severity":"High","kev":{"listed":false},"epss":{"probability":0.00389,"percentile":0.31848,"score_date":"2026-10-23"},"published_at":"2026-10-15T18:57:55.295Z","modified_at":"2026-10-21T01:30:43.369Z","provenance":[{"source":"CVE List","url":"https://www.cve.org/CVERecord?id=CVE-2026-111170","fetched_at":"2026-10-23T18:45:31.882637Z","source_modified_at":"2026-10-21T01:30:43.369Z"},{"source":"OSV","url":"https://osv.dev/vulnerability/GHSA-cjg8-h5qc-hrjv","fetched_at":"2026-10-23T18:45:31.882637Z","source_modified_at":"2026-10-16T10:55:54.308430209Z"},{"source":"EPSS","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-111170","fetched_at":"2026-10-23T18:42:43.628194Z","source_modified_at":"2026-10-23"}],"sources":["CVE List","OSV","EPSS"],"references":[{"source":"CVE List","url":"https://github.com/kedro-org/kedro-plugins/pull/1544","tags":["issue-tracking","technical-description","patch"]},{"source":"CVE List","url":"https://github.com/kedro-org/kedro-plugins/blob/611ce7a20dcb0be655190afb9064468fa278b08c/kedro-datasets/kedro_datasets/matplotlib/matplotlib_dataset.py#L198-L201","tags":["technical-description"]},{"source":"CVE List","url":"https://github.com/kedro-org/kedro-plugins/blob/611ce7a20dcb0be655190afb9064468fa278b08c/kedro-datasets/kedro_datasets/_utils/security.py#L22","tags":["technical-description"]},{"source":"CVE List","url":"https://github.com/kedro-org/kedro-plugins/security/advisories/GHSA-cjg8-h5qc-hrjv","tags":["related","vendor-advisory"]},{"source":"CVE List","url":"https://github.com/kedro-org/kedro-plugins","tags":["product"]},{"source":"CVE List","url":"https://www.vulncheck.com/advisories/kedro-datasets-9.3.0-through-9.6.0-path-traversal-via-matplotlibdataset-plot-name","tags":["third-party-advisory"]}],"locations":[],"motoko_assessment":{"status":"requires_architecture_review","automatic_remediation":false},"cve_state":"PUBLISHED","cvss_source":"CVE List","ssvc":{"exploitation":"none","automatable":"no","technical_impact":"partial","assessed_at":"2026-10-21T01:30:33.205913Z"},"classification":{"method":"product-first software-layer rules","rules_version":"2.1","matched_on":"ecosystem","confidence":"heuristic","reviewed":false},"change_timestamp":"2026-10-21T01:30:43.369Z","content_hash":"3db866f9fb584944f77619b759f6fa5feb4a44a793ff1d28c00664426c59a1c6"}}
