PatchSiren cyber security CVE debrief
CVE-2026-104103 ludwig-ai CVE debrief
Ludwig, a low-code framework for building custom LLMs, neural networks, and other AI models, has a path traversal vulnerability in its dataset archive extraction functionality. This allows for arbitrary file writes via symlink members. The issue, fixed in version 0.17.8, can lead to attacker-controlled content being placed at arbitrary filesystem paths with the privileges of the extracting process.
- Vendor
- ludwig-ai
- Product
- ludwig
- CVSS
- HIGH 8.1
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-10-14
- Original CVE updated
- 2026-10-15
- Advisory published
- 2026-10-14
- Advisory updated
- 2026-10-15
Who should care
Ludwig users, especially those who process archives from untrusted sources, should assess their exposure. This includes operators, platform administrators, vulnerability management teams, and security teams. They should prioritize upgrading to version 0.17.8 or later and restrict access to archive extraction functionality.
Why it matters
This vulnerability allows attackers to write arbitrary files via symlink members in crafted archives. Ludwig users should upgrade to version 0.17.8 or later, restrict access to archive extraction, and monitor for suspicious activity.
- Potential for arbitrary file writes with extracting process privileges
- Possible data integrity and confidentiality impacts
- Need for careful validation of archive sources
- Verification of upgrade to fixed version 0.17.8 or later
Technical summary
The Ludwig framework's dataset archive extraction functionality is vulnerable to path traversal attacks. This occurs because the `ludwig.datasets.archives.extract_archive()` function does not properly validate symlink members or hard-link members. An attacker can craft an archive that creates a link escaping the extraction directory, allowing them to write a later member through that link to an arbitrary filesystem path with the extracting process's privileges.
Defensive priority
High priority for Ludwig users, especially those processing archives from untrusted sources.
Recommended defensive actions
- Upgrade Ludwig to version 0.17.8 or later
- Restrict access to archive extraction functionality
- Monitor for suspicious archive processing activity
- Review compensating controls for exposed systems
- Check relevant monitoring, detection, and logs for exposed assets
- Track exceptions and retest remediated assets
- Plan vendor-supported updates through normal change control
Evidence notes
The CVE record and source item provide details on the vulnerability, its impact, and the fixed version. The Ludwig team's security advisory and release notes also offer insights into the issue. Evidence is limited to public CVE Program and NVD records. Defenders should verify archive source validity, assess Ludwig version exposure, and confirm upgrade to version 0.17.8 or later.
Sources and references
Verified primary and authoritative sources
-
CVE-2026-104103 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-104103
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-104103 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-104103
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
Ludwig: Path traversal in dataset archive extraction allows arbitrary file write via symlink mem
Unverified legacy reference
URL: https://raw.githubusercontent.com/CVEProject/cvelistV5/main/cves/2026/104xxx/CVE-2026-104103.json
cve_program_cvelist_v5
-
Source reference
Unverified legacy reference
URL: https://github.com/ludwig-ai/ludwig/security/advisories/GHSA-qvrm-3x4c-rcxf
Supplemental source - x_refsource_CONFIRM
-
Source reference
Unverified legacy reference
URL: https://github.com/ludwig-ai/ludwig/commit/7f534f31e725cc5362c8f6f85537488443de279a
Supplemental source - x_refsource_MISC
-
Source reference
Unverified legacy reference
URL: https://github.com/ludwig-ai/ludwig/releases/tag/v0.17.8
Supplemental source - x_refsource_MISC
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.