CVE-2026-104103: CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') in ludwig-ai ludwig
Description
CVE-2026-104103 is a path traversal vulnerability in ludwig-ai's ludwig framework prior to version 0.17.8. The flaw exists in the extract_archive() function, which improperly validates symlink and hard-link members in tar archives, allowing crafted archives to write files outside the intended extraction directory. Exploitation requires processing a malicious archive from an attacker-controlled source on Python 3.12 or 3.13 runtimes. The issue is fixed in version 0.17.8, and Python 3.14 is not affected due to improved tar data filtering.
CVSS v3.1
Score 8.1high
Affected software
ludwig-ai
ludwig
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
Ludwig versions before 0.17.8 contain a path traversal vulnerability (CWE-22) in the extract_archive() function of ludwig.datasets.archives. While tar member names were validated before extraction, symlink and hard-link members were not properly checked, enabling an attacker to craft an archive that creates links escaping the extraction directory. This allows writing attacker-controlled content to arbitrary filesystem paths with the privileges of the extracting process. The vulnerability affects Python 3.12 and 3.13 runtimes because the containment check used os.path.commonprefix, which can be bypassed by sibling paths sharing character prefixes. Python 3.14 mitigates this by rejecting escaping links by default. The vulnerability is resolved in ludwig version 0.17.8.
Potential Impact
An attacker who can supply a crafted archive to the dataset-loading path can cause arbitrary files to be written outside the intended extraction directory, potentially overwriting critical files or injecting malicious content. This can lead to integrity compromise and denial of service with the privileges of the process performing extraction. Exploitation requires user interaction to process a malicious archive from a controlled or compromised source. There are no known exploits in the wild.
Mitigation Recommendations
Upgrade ludwig to version 0.17.8 or later, where the vulnerability is fixed. Users running on Python 3.14 are not affected due to improved tar extraction filtering. Avoid processing untrusted archives from unverified sources. Patch status is confirmed fixed in version 0.17.8.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-10-01T18:05:14.173Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 6acfc7fd2cdf04f6569f5ebc
Added to database: 10/14/2026, 18:20:45 UTC
Last enriched: 10/14/2026, 18:33:52 UTC
Last updated: 10/14/2026, 19:00:29 UTC
Views: 11
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.