Im Paketmanager Cargo, der für das Management von Paketen und den Bau von Projekten in Rust genutzt wird, wurden zwei Sicherheitsanfälligkeiten entdeckt, die beim Herunterladen von speziell gestalteten Paketen aus fremden Repositories ausgenutzt werden können (es wird behauptet, dass die Nutzer des offiziellen Repositories crates.io von dem Problem nicht betroffen sind). Die erste Sicherheitsanfälligkeit (CVE-2022-36113) ermöglicht es, die ersten zwei Bytes in einer beliebigen Datei zu überschreiben, soweit dies die aktuellen Zugriffsrechte zulassen. Die zweite Sicherheitsanfälligkeit (CVE-2022-36114) kann genutzt werden, um den verfügbaren Speicherplatz auf der Festplatte zu erschöpfen.
Die Sicherheitsanfälligkeiten werden in der Rust-Version 1.64 behoben, die für den 22. September geplant ist. Den Anfälligkeiten wurde ein niedriges Gefahrenpotenzial zugeordnet, da ähnlicher Schaden bei der Nutzung nicht geprüfter Pakete aus fremden Repositories durch die reguläre Möglichkeit, eigene Handler aus den mit dem Paket gelieferten Build-Skripten oder prozeduralen Makros auszuführen, verursacht werden kann. Dabei unterscheiden sich die oben genannten Probleme dadurch, dass ihre Ausnutzung in der Phase der Paketeröffnung nach dem Herunterladen erfolgt (ohne Bau).
Insbesondere entpackt Cargo nach dem Herunterladen eines Pakets dessen Inhalt in das Verzeichnis ~/.cargo und speichert das Zeichen für die erfolgreiche Entpackung in der Datei .cargo-ok. Der Kern der ersten Sicherheitsanfälligkeit besteht darin, dass der Pakethersteller einen symbolischen Link mit dem Namen .cargo-ok platzieren kann, was dazu führt, dass der Text "ok" in die Datei geschrieben wird, auf die der Link verweist.
Die zweite Sicherheitsanfälligkeit entsteht durch das Fehlen einer Begrenzung für die Größe der aus dem Archiv extrahierten Daten, was für die Erstellung von „Zip-Bomben“ verwendet werden kann (im Archiv können Daten enthalten sein, die eine maximale für das Zip-Format erreichbare Kompression von etwa 28 Millionen mal ermöglichen; in diesem Fall würde beispielsweise eine speziell vorbereitete Zip-Datei von 10 MB zur Entpackung von rund 281 TB Daten führen).
Quelle: opennet.ru
