Die Rust-Library async-tar enthält eine Schwachstelle, die es Angreifern ermöglicht, versteckte Inhalte in tar-Archiven einzuschleusen.
Das auf sichere Laufzeitumgebungen spezialisierte Unternehmen Edera hat den Fehler veröffentlicht und ihm den etwas dramatischen Namen TARmageddon gegeben. Das Unternehmen hatte einen eigenen Fork der Library gepflegt, der inzwischen archiviert ist, aber noch einen Patch erhält.
Die Library async-tar dient dazu, tar-Archive asynchron zu lesen und zu schreiben. Sie ist deutlich performanter als die synchron arbeitende tar-Library für Rust.
Der zugehörige CVE-Eintrag (Common Vulnerabilities and Exposures) CVE-2025-62518 hat den Schweregrad "hoch" mit dem Wert 8,1 von 10.
Fork ohne Patch: Zeit zum Wechseln
Auch wenn sich der CVE-Eintrag auf die Library astral-tokio-tar bezieht, betrifft die Schwachstelle die Library async-tar und deren Forks. Der am weitesten verbreitete Fork tokio-tar, mit über 7 Millionen Downloads im Rust-Paketmanager crates.io, wird seit zwei Jahren nicht mehr gepflegt. Damit bleibt er weiter verwundbar.
Wer tokio-tar nutzt, sollte auf den Fork astral-tokio-tar oder eine andere Alternative wie die nicht asynchrone tar-Library wechseln. Der Fork astral-tokio-tar hat mit Version 0.5.6 ein Update erhalten, das die Schwachstelle behebt.
Verwirrung in den Headern
Der Fehler liegt in der Verarbeitung der Header für die tar-Dateien. async-tar verarbeitet sowohl das ustar- als auch das PAX-Format. Wenn eine Datei Header für beide Formate enthält, kommt es zur Inkonsistenz: Der Parser nutzt die im ustar-Header angegebene Größe, während für andere tar-Werkzeuge die PAX-Werte gelten.
Wenn der PAX-Header die richtige Dateigröße angibt, ustar aber mit der Größe 0 angegeben ist, springt der Parser nicht weiter, sondern verarbeitet den Inhalt verschachtelter Archive, die aber andere tar-Werkzeuge nicht als solche erkennen und damit auch nicht untersuchen.
Der Blogbeitrag zu der Schwachstelle zeigt das in folgendem Kurzbeispiel:
Expected by scanner/validator: Entry 1: "outer-file.txt" Entry 2: "inner-tar-file.tar" (0 bytes per ustar, but N bytes in PAX) Entry 3: "next-file.txt" Actually extracted by tokio-tar: Entry 1: "outer-file.txt" Entry 2: "inner-tar-file.tar" (0 bytes per ustar) Entry 3: "inner-file1.txt" (from inner TAR) Entry 4: "inner-file2.txt" (from inner TAR) Entry 5: "next-file.txt" (continues normally)Der Parser von async-tar verarbeitet die verschachtelten Dateien als reguläre Inhalte des Archivs.
Als theoretisches Angriffsszenario führt der Beitrag den Python-Pakemanager uv auf, der ebenso von Astral stammt wie der inzwischen gepatchte Fork astral-tokio-tar. Vor dem Patch der in uv genutzten Library hätten Angreifer versteckten Schadcode über ein verschachteltes tar-Archiv einschmuggeln können.
Stabile Patches
Edera hat den Bug vor zwei Monaten entdeckt. Anschließend hat das Team einen Patch erstellt und die Maintainer der Libraries informiert. Die Libraries astral-tokio-tar und krata-tokio-tar haben den Patch erhalten, und der Maintainer von async-tar hat den Fehler selbst behoben. Allerdings finden sich im Paketmanager crates.io für async-tar und krata-tokio-tar nach wie vor etwa ein Jahr alte Versionen ohne Patch.
Dass der Bug erst jetzt veröffentlicht wurde, liegt an dem Embargo von 60 Tagen seit Edera den Maintainern den Bug gemeldet hat.
(rme)












English (US) ·