Skip to main content

ZenML CVE-2025-8406

HIGH
Path Traversal (CWE-22)
2025-10-05 security@huntr.dev
7.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious tar.gz with out-of-bounds link
  2. Delivery
    Deliver poisoned artifact to ZenML store
  3. Exploit
    Victim loads artifact via PathMaterializer
  4. Execution
    Link bypasses path validation on extraction
  5. Persist
    Arbitrary file overwritten outside directory
  6. Impact
    Code execution via overwritten critical file

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that a victim invoke PathMaterializer.load on an attacker-controlled data.tar.gz artifact (UI:R) - the attacker cannot trigger it unaided. The specific weakness is that the is_path_within_directory validation used during tar.extractall checks only the member name and does not validate symbolic-link or hard-link targets, so the malicious artifact must contain a sym/hard link whose linkname resolves outside the extraction directory. The practical limiting factor is that the target environment must ingest and deserialize untrusted artifacts through ZenML's PathMaterializer (local vector, AV:L); environments that only load trusted, internally-produced artifacts are not realistically exposed. No authentication to ZenML is required (PR:N), but the social/pipeline step of loading the poisoned artifact is mandatory.

Impact

This is a genuine integrity/availability threat but not a mass-exploitation priority. The CVSS 3.1 base score of 7.8 is driven by high confidentiality, integrity and availability impact (C:H/I:H/A:H) combined with low attack complexity, but the local attack vector (AV:L) and required user interaction (UI:R) materially constrain real-world risk: exploitation requires a victim to load an attacker-supplied malicious data.tar.gz artifact through the PathMaterializer.load path. The EPSS score is low (0.36%, 29th percentile), consistent with a vulnerability that requires a specific trigger (loading a crafted artifact) rather than a remotely sprayable flaw, and this vulnerability is NOT listed in CISA KEV, so there is no evidence of active exploitation. A public proof-of-concept exists (huntr bounty), which raises the practical likelihood of opportunistic use, but POC availability is distinct from active exploitation. Note a nuance: although PR:N marks it unauthenticated, UI:R means an attacker cannot act alone - they must get a victim/pipeline to ingest a malicious artifact, so this is closer to a supply-chain/artifact-poisoning risk than a directly remotely-triggerable RCE. Net: a real, patch-worthy issue for ZenML users who load untrusted artifacts, but lower urgency than the raw 7.8 suggests given no KEV, low EPSS, and the user-interaction requirement.

Exploit ScenarioDerived

An attacker crafts a malicious data.tar.gz artifact containing a symbolic or hard link whose target points outside the extraction directory (e.g. to a startup script, cron file, or Python module). When a victim's ZenML pipeline or user loads this artifact via the PathMaterializer.load function, the flawed is_path_within_directory check fails to catch the link target and extraction writes to an arbitrary filesystem location, overwriting a critical file. A public PoC exists (huntr), and because attack complexity is low, a successful file overwrite can escalate to arbitrary command execution.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 19, 2026

ZenML 0.83.1 can be induced to write files outside the intended extraction directory when PathMaterializer.load processes a crafted data.tar.gz containing symbolic or hard links whose targets escape the archive root. The validation only checks member names, so an attacker who convinces a victim pipeline to load the poisoned artifact can overwrite arbitrary files, with possible command execution if critical files are replaced. Publicly available exploit code exists, EPSS is low at 0.36%, there is no KEV indication of active exploitation, and a vendor fix commit is available.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed. Apply the vendor fix represented by commit 5d22a48d7bf6c7f10b748577c2be79cc7969d398, which adds _is_safe_tar_member and validates symlink and hard link targets, or upgrade to a ZenML release that includes it; the supplied data does not provide an exact patched release version, so confirm the release contents before relying on a version number. If immediate upgrade is not possible, do not load untrusted data.tar.gz artifacts through PathMaterializer; restrict artifact ingestion to trusted, internally produced artifacts and verify provenance before deserialization. As a compensating control, pre-screen tar members and reject any symlink or hard link whose linkname is absolute or resolves outside the extraction directory, then extract in a low-privilege sandbox or container with no write access to sensitive host paths. These mitigations trade away the ability to consume external artifacts or may alter pipeline behavior, and inspection should not replace the vendor patch because incomplete filtering can be bypassed. Advisory and bounty reference: https://huntr.com/bounties/a0880d64-9928-45bf-9663-2cd81582d9e7.

Affected Packages

pypi zenml fix: 0.84.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

ZenML materializers serialize and deserialize pipeline artifacts, and PathMaterializer.load handles tar-based archives by filtering members before calling tarfile.extractall. The vulnerable is_path_within_directory check validates member.name but does not inspect member.linkname for entries where issym() or islnk() is true. Tar symbolic and hard links store their target path in linkname, so an archive can include a link whose target is absolute or contains ../ sequences and therefore resolves outside the extraction directory; writes through that link can land in sensitive locations. This is CWE-22 path traversal in archive extraction, with a local attack vector and user interaction required because the victim must load the malicious artifact. The supplied fix commit adds _is_safe_tar_member, which rejects unsafe member names and separately validates symlink and hard link targets, with tests covering regular files, symlinks, hard links, absolute paths, and mixed cases. The CPE cpe:2.3:a:zenml:zenml:*:*:*:*:*:*:*:* identifies ZenML as the product, with version 0.83.1 named in the report.

Know when Zenml gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 7.8 HIGH
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 7.8 HIGH

Requires a victim to load an attacker-supplied artifact (AV:L, UI:R) with no auth (PR:N); arbitrary file write enabling code execution yields full C/I/A impact.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

DescriptionNVD

ZenML version 0.83.1 is affected by a path traversal vulnerability in the PathMaterializer class. The load function uses is_path_within_directory to validate files during data.tar.gz extraction, which fails to effectively detect symbolic and hard links. This vulnerability can lead to arbitrary file writes, potentially resulting in arbitrary command execution if critical files are overwritten.

Executive ViewAI

Why It Matters

ZenML 0.83.1, the machine-learning pipeline framework used by data science and MLOps teams, can be tricked into overwriting arbitrary files on pipeline hosts when it loads a maliciously crafted artifact archive, potentially enabling command execution if critical system files are replaced. Leadership should care because compromise of a pipeline host can expose model artifacts, training data, and cloud credentials used by those workloads, and remediation requires coordinated action across teams running ZenML. Publicly available exploit code exists, though there is no confirmed active exploitation.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 71% exploitable
Prevalence
Low
MLOps framework with niche ML-engineering adoption, not broadly deployed enterprise-wide
Exploit
POC
Public exploit code exists
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Small
Automatable· derived
No
Human Impact
High

Priority Score

59
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

Affected Products (CPE)NVD

cpe:2.3:a:zenml:zenml:*:*:*:*:*:*:*:*

More in Zenml

View all
CVE-2024-2083 CRITICAL POC
9.9 Apr 16

A directory traversal vulnerability exists in the zenml-io/zenml repository, specifically within the /api/v1/steps endpo

CVE-2024-4680 HIGH POC
8.8 Jun 08

A vulnerability in zenml-io/zenml version 0.56.3 allows attackers to reuse old session credentials or session IDs due to

CVE-2024-25723 HIGH POC
8.8 Feb 27

ZenML Server in the ZenML machine learning package before 0.46.7 for Python allows remote privilege escalation because t

CVE-2024-2035 MEDIUM POC
6.5 Jun 06

An improper authorization vulnerability exists in the zenml-io/zenml repository, specifically within the API PUT /api/v1

CVE-2024-5062 MEDIUM POC
6.1 Jun 30

A reflected Cross-Site Scripting (XSS) vulnerability was identified in zenml-io/zenml version 0.57.1. Rated medium sever

CVE-2024-2383 MEDIUM POC
6.1 Jun 06

A clickjacking vulnerability exists in zenml-io/zenml versions up to and including 0.55.5 due to the application's failu

CVE-2024-4311 MEDIUM POC
5.4 Nov 14

zenml-io/zenml version 0.56.4 is vulnerable to an account takeover due to the lack of rate-limiting in the password chan

CVE-2024-2171 MEDIUM POC
4.8 Jun 06

A stored Cross-Site Scripting (XSS) vulnerability was identified in the zenml-io/zenml repository, specifically within t

CVE-2024-28424 HIGH
8.8 Mar 14

zenml v0.55.4 was discovered to contain an arbitrary file upload vulnerability in the load function at /materializers/cl

CVE-2026-68772 HIGH
8.5 Aug 07

Remote code execution in ZenML 0.94.6 allows any attacker with write access to a shared artifact store to plant a malici

CVE-2024-2260 MEDIUM POC
4.2 Apr 16

A session fixation vulnerability exists in the zenml-io/zenml application, where JWT tokens used for user authentication

CVE-2024-2213 LOW POC
3.3 Jun 06

An issue was discovered in zenml-io/zenml versions up to and including 0.55.4. Rated low severity (CVSS 3.3), this vulne

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy