ZeroHour

CVE-2026-91771

large

Path Traversal in Weights & Biases wandb SDK File.download (before 0.29.0)

CVSS 4.0
8.7 high
EPSS
Published
()
Modified
AI analysis

The Weights & Biases wandb Python client before version 0.29.0 fails to validate file names returned in server responses by its File.download function, enabling a path traversal (CWE-22) attack. An attacker who controls the backend — a compromised or malicious self-hosted W&B server, a spoofed endpoint, or a man-in-the-middle if TLS is not enforced — can supply file names containing directory traversal sequences such as '../', causing the client to write files outside the intended download directory when a user downloads a file. This arbitrary file write can be escalated to code execution by overwriting shell startup files (e.g., ~/.bashrc, ~/.zshrc) or planting Python import-path configuration such as .pth files. Anyone running the wandb client below 0.29.0 who downloads files is affected; the attack requires the victim to initiate a download, which is reflected in the CVSS 4.0 score of 8.7 (AV:N/AC:L/PR:N/UI:P). No public proof of concept is known and the flaw is not in CISA's KEV catalog, so exploitation is currently none known.

What to do: Upgrade the wandb client to version 0.29.0 or later immediately (pip install --upgrade wandb) across development machines, training servers, and CI images. Only download files from trusted W&B backends (official cloud or self-hosted instances you control) and verify that connections are made over TLS so server responses cannot be tampered with. Audit machines that ran older clients for unexpected files written outside the wandb download directory, and review shell startup files (~/.bashrc, ~/.zshrc, ~/.profile) and site-packages .pth files for signs of tampering.

Affected
Weights & Biases wandb (Python SDK / client library)before 0.29.0 (< 0.29.0)
Estimated exposure
large≈ hundreds of thousands of users/environments, potentially over 1M (wandb PyPI package downloaded millions of times per month) — Estimated from the wandb client's large PyPI download volume (millions of downloads monthly) and Weights & Biases' user base across ML teams; not all installs use the vulnerable File.download path, so this is an order-of-magnitude estimate…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Weights & Biases wandb before 0.29.0 fails to validate the file name from server responses in the File.download function, allowing path traversal attacks. Attackers controlling the backend can supply file names with directory traversal sequences to write files outside the intended download directory, potentially enabling code execution through modification of shell startup files or Python import paths.

Weakness
CWE-22
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.