Im Paketmanager Cargo, der für die Verwaltung von Paketen und den Aufbau von Projekten in der Programmiersprache Rust verwendet wird, wurden zwei Sicherheitsanfälligkeiten entdeckt, die ausgebeutet werden können, wenn speziell gestaltete Pakete aus externen Repositories heruntergeladen werden (es wird behauptet, dass Nutzer des offiziellen Repositories crates.io von dem Problem nicht betroffen sind). Die erste Sicherheitsanfälligkeit (CVE-2022-36113) erlaubt es, die ersten zwei Bytes in einer beliebigen Datei zu überschreiben, je nach den aktuellen Zugriffsrechten. Die zweite Sicherheitsanfälligkeit (CVE-2022-36114) könnte genutzt werden, um den verfügbaren Speicherplatz auf der Festplatte zu erschöpfen.
Die Sicherheitsanfälligkeiten werden in der für den 22. September geplanten Version Rust 1.64 behoben. Den Anfälligkeiten wurde ein niedriges Gefährdungspotenzial zugewiesen, da ein ähnlicher Schaden durch die Verwendung nicht verifizierter Pakete aus externen Repositories auch durch die reguläre Möglichkeit verursacht werden kann, eigene Handler aus in den Paketen gelieferten Build-Skripten oder prozeduralen Makros auszuführen. Dabei unterscheiden sich die oben genannten Probleme insofern, als dass ihre Ausnutzung in der Phase der Paketentdeckung nach dem Download (ohne Build) erfolgt.
Insbesondere entpackt das Tool nach dem Herunterladen das Paket in das Verzeichnis ~/.cargo und speichert den Status der erfolgreichen Entpackung in der Datei .cargo-ok. Das Problem der ersten Schwachstelle besteht darin, dass der Paketentwickler eine symbolische Verknüpfung mit dem Namen .cargo-ok einfügen kann, was dazu führt, dass der Text „ok“ in die Datei geschrieben wird, auf die die Verknüpfung zeigt.
Die zweite Schwachstelle ergibt sich aus dem Fehlen einer Begrenzung für die Größe der aus dem Archiv extrahierten Daten, was ausgenutzt werden kann, um „Zip-Bomben“ zu erstellen (im Archiv können Daten platziert werden, die eine maximal mögliche Kompression für das Zip-Format ermöglichen – etwa 28 Millionen Mal. In diesem Fall würde beispielsweise eine speziell vorbereitete Zip-Datei mit einer Größe von 10 MB zu einer Entpackung von etwa 281 TB Daten führen).
Quelle: opennet.ru
