CVE-2025-8406: ZenML is vulnerable to Path Traversal through its `PathMaterializer` class
6.3
Basic Information
Technical Details
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| zenml | pip | >= 0.81.0, < 0.84.2 | 0.84.2 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability lies in the PathMaterializer.load function in ZenML. The provided patch 5d22a48d7bf6c7f10b748577c2be79cc7969d398 clearly shows the vulnerability and its fix. The load function is responsible for loading data from a tar archive. The vulnerability description states that the is_path_within_directory function was used to validate file paths during extraction, but it failed to handle symbolic and hard links correctly. The patch confirms this by introducing a new function, _is_safe_tar_member, which explicitly checks for symbolic and hard links (member.issym() or member.islnk()) and validates their linkname. The load function was modified to use this new, safer function. Therefore, the PathMaterializer.load function is the vulnerable function as it was the one performing the unsafe extraction.
Vulnerable functions
PathMaterializer.loadsrc/zenml/materializers/path_materializer.py