PT-2026-113968 · Git+1 · Ludwig

CVE-2026-104103

·

Published

2026-10-14

·

Updated

2026-10-14

CVSS v3.1

8.1

High

VectorAV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H
Name of the Vulnerable Software and Affected Versions Ludwig versions prior to 0.17.8
Description An issue exists in the extract archive() function within ludwig.datasets.archives where tar member names are validated before calling TarFile.extractall(), but symlink and hard-link members are not. A specially crafted archive can create a link that escapes the extraction directory, allowing attacker-controlled content to be written to an arbitrary filesystem path with the privileges of the extracting process. Additionally, the containment check utilizes os.path.commonprefix, which may allow sibling paths sharing the destination's character prefix to pass. This can occur when processing archives from compromised sources on Python 3.12 and 3.13 runtimes.
Recommendations Update to version 0.17.8.

Exploit

Fix

Path traversal

Link Following

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

CVE-2026-104103
GHSA-QVRM-3X4C-RCXF

Affected Products

Ludwig