Direct naar de inhoud
⚡ Kritieke cyberalerts voor jouw sector & systemen — direct in je inbox. Aanmelden →
cybernieuws.nl Cybersecurity en informatiebeveiling nieuws alerts live · 6 min 166 bronnen 1 kritiek 15 vandaag
CVE's Videos Dagbriefing

← Terug naar CVE-database

CVE-2026-104103

HIGH · 8.1 CVSS Gepubliceerd: CWE-22

Beschrijving NL

Ludwig is een low-code framework voor het bouwen van aangepaste LLM's, neurale netwerken en andere AI-modellen. Voorafgaand aan 0.17.8 valideerde ludwig.datasets.archives.extract_archive() de namen van TAR-leden voordat TarFile.extractall() werd aangeroepen, maar valideerde symlink-leden of hard-link-leden niet. Een vervaardigd archief kan een link maken die uit de uitpakmap is ontsnapt en vervolgens een later lid via die link schrijven, waarbij door aanvallers gecontroleerde inhoud op een willekeurig pad van het bestandssysteem wordt geplaatst met de privileges van het uitpakproces. Dezelfde containmentcontrole gebruikte os.path.commonprefix, dus een broer/zus-pad dat het tekenvoorvoegsel van de bestemming deelt, kan ook passeren. Het pad voor het laden van datasets kan geconfigureerde archief-URL's downloaden en extraheren, maar voor exploitatie moet een gebruiker een archief verwerken van een bron die door de aanvaller wordt beheerd of gecompromitteerd op ondersteunde Python 3.12- en 3.13-runtimes. Python 3.14 wordt niet beïnvloed omdat het standaard tar-gegevensfilter ontsnappende links afwijst. Dit probleem is opgelost in versie 0.17.8.

Origineel (Engels) tonen

Ludwig is a low-code framework for building custom LLMs, neural networks, and other AI models. Prior to 0.17.8, ludwig.datasets.archives.extract_archive() validated tar member names before calling TarFile.extractall() but did not validate symlink members or hard-link members. A crafted archive could create a link that escaped the extraction directory and then write a later member through that link, placing attacker-controlled content at an arbitrary filesystem path with the extracting process's privileges. The same containment check used os.path.commonprefix, so a sibling path sharing the destination's character prefix could also pass. The dataset-loading path can download and extract configured archive URLs, but exploitation requires a user to process an archive from a source controlled or compromised by the attacker on supported Python 3.12 and 3.13 runtimes. Python 3.14 is not affected because its default tar data filter rejects escaping links. This issue is fixed in version 0.17.8.

References