PatchSiren

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.