Kw vulnerability in Rust-bibliotheken voor het TAR-formaat, wat leidt tot het uitpakken van bestanden uit een genest archief

In de Rust-bibliotheek async-tar, die functies biedt voor het lezen en schrijven van tar-archieven, is een kwetsbaarheid ontdekt (CVE-2025-62518, codenaam TARmageddon) die het mogelijk maakt om niet alleen de bestanden die in een speciaal gevormd tar-archief zijn geplaatst uit te pakken, maar ook bestanden die zich in een genest tar-archief bevinden. Deze kwetsbaarheid kan worden gebruikt om verifiƫringssystemen voor archieven te omzeilen en bestanden uit te pakken waarvoor geen controle heeft plaatsgevonden.

De kwetsbaarheid doet zich ook voor in forks van de bibliotheek async-tar, zoals tokio-tar, krata-tokio-tar en astral-tokio-tar, evenals in tools op basis daarvan, bijvoorbeeld in de package manager uv, die wordt ontwikkeld als een high-performance vervanger voor 'pip' voor projecten in de programmeertaal Python. Onder de populaire projecten die kwetsbare bibliotheken gebruiken, zijn ook het testcontainers-framework voor het draaien van docker-containers en de WebAssembly-runtime wasmCloud te noemen. In de crates.is-repository heeft de bibliotheek async-tar de afgelopen 90 dagen 1,3 miljoen downloads, tokio-tar 2,2 miljoen en testcontainers 2,9 miljoen.

De kwetsbaarheid wordt veroorzaakt door een onjuiste positie-indexering bij het parseren van verschillende grootte-waarden in de headers van ustar en PAX. In PAX-formaat tar-archieven worden voor elk bestand binnen het archief twee headers opgegeven - de klassieke ustar en de uitgebreide PAX. Het probleem is dat kwetsbare bibliotheken bij het uitpakken van bestanden in plaats van de offset op basis van de grootte uit de uitgebreide PAX-header te berekenen, de grootte uit de verouderde ustar-header namen. Bij een nulwaarde van de grootte in de ustar-header werd de inhoud van het volgende bestand behandeld als een geldige blok TAR-headers voor het volgende bestand.

Kw vulnerability in Rust-bibliotheken voor het TAR-formaat, wat leidt tot het uitpakken van bestanden uit een genest archief
Kw vulnerability in Rust-bibliotheken voor het TAR-formaat, wat leidt tot het uitpakken van bestanden uit een genest archief

Om een aanval uit te voeren, is het genoeg om een TAR-archief te maken waarin de ustar-header een nulgrootte aangeeft, terwijl in de PAX-header de actuele grootte staat, waardoor de inhoud van een bestand met een ander tar-archief wordt behandeld als onderdeel van het hoofdarchief. Een voorbeeldcode voor het maken van dergelijke archieven is beschikbaar op GitHub. De kwetsbaarheid is verholpen in de releases tokio-tar 0.5.6 en uv 0.9.5. Voor de overige bibliotheken zijn er momenteel geen fixes gepubliceerd, maar voor astral-tokio-tar, async-tar en krata-tokio-tar zijn afzonderlijke patches voorbereid.

De kwetsbaarheden in de bibliotheken hebben een bedreigingsniveau van 8.1 uit 10 gekregen, omdat het probleem kan worden gebruikt om uitgepakte bestanden opnieuw te schrijven (in kwetsbare implementaties zullen andere bestanden worden uitgepakt dan die zichtbaar waren in het archief). De kwetsbaarheid in de pakketbeheerder uv is echter als ongevaarlijk gemarkeerd, omdat als een aanvaller invloed kan uitoefenen op de inhoud van het oorspronkelijke archief, er geen zin is om de aanval te compliceeren en de kwetsbaarheid via een genest archief te exploiteren, wanneer code-uitvoering kan worden bereikt via de build-scripts in het hoofdarchief.

De onderzoekers die de kwetsbaarheid ontdekten, stelden verschillende hypothetische aanvalsscenario's voor die de beveiligingscontroles kunnen omzeilen en code-uitvoering kunnen bereiken door configuratiebestanden te vervangen of in te grijpen in het bouwproces. Het wordt verondersteld dat het ingestuurde archief een geautomatiseerde controle door een beveiligingsscanner en een handmatige audit kan doorstaan, waarbij de auditor geen aandacht zal schenken aan een vreemd genest archief met andere bestanden, waarna bij het uitpakken met behulp van Rust-bibliotheken andere inhoud uit het archief zal worden onthuld dan verwacht.

Bijvoorbeeld, een aanvaller kan een gemodificeerd archief naar de PyPI-repository uploaden, dat de controle zal doorstaan op basis van de inhoudsanalyse van het hoofdbestand, dat een legitiem pyproject.toml-bestand bevat. Bij de verwerking van dit pakket met de tool uv zal het legitieme pyproject.toml worden vervangen door een kwaadaardige versie uit het geneste archief, dat opdrachten bevat die worden uitgevoerd tijdens de build op de computer van de ontwikkelaar of in het continu integratiesysteem. Evenzo kan de overschrijving van containerbestanden worden georganiseerd bij het uitpakken van de containerafbeelding met behulp van de testcontainers-toolset.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster