Schwachstellen im Cargo-Paketmanager, der für Rust-Projekte verwendet wird

Im Cargo-Paketmanager, der zur Verwaltung von Paketen und zum Erstellen von Projekten in der Rust-Sprache verwendet wird, wurden zwei Schwachstellen identifiziert, die beim Herunterladen speziell entwickelter Pakete aus Repositories von Drittanbietern ausgenutzt werden können (angeblich Benutzer der offiziellen Crates). io-Repository waren von dem Problem nicht betroffen). Die erste Schwachstelle (CVE-2022-36113) ermöglicht das Überschreiben der ersten beiden Bytes in jeder Datei, sofern die aktuellen Berechtigungen dies zulassen. Die zweite Schwachstelle (CVE-2022-36114) kann ausgenutzt werden, um freien Speicherplatz zu erschöpfen.

Die Schwachstellen werden in der für den 1.64. September geplanten Veröffentlichung von Rust 22 behoben. Den Schwachstellen wird ein niedriger Schweregrad zugeordnet, da ähnliche Schäden bei der Verwendung ungeprüfter Pakete aus Repositorys von Drittanbietern durch die standardmäßige Möglichkeit verursacht werden können, ihre Handler über die im Paket enthaltenen Build-Skripte oder prozeduralen Makros auszuführen. Gleichzeitig unterscheiden sich die oben genannten Probleme dadurch, dass ihre Wirkung im Stadium des Öffnens der Verpackung nach dem Beladen (ohne Zusammenbau) erfolgt.

Insbesondere nachdem ein Paket geladen wurde, entpackt Cargo dessen Inhalt in das Verzeichnis ~/.cargo und speichert ein Zeichen des erfolgreichen Entpackens in der Datei .cargo-ok. Der Kern der ersten Schwachstelle besteht darin, dass der Ersteller des Pakets darin einen symbolischen Link mit dem Namen .cargo-ok platzieren kann, der dazu führt, dass der Text „ok“ in die Datei geschrieben wird, auf die der Link verweist.

Die zweite Schwachstelle wird durch das Fehlen einer Begrenzung der Größe der aus dem Archiv extrahierten Daten verursacht, die zum Erstellen von „Zip-Bomben“ verwendet werden können (Daten können im Archiv platziert werden, um die maximale Komprimierungsrate für das Zip-Format zu erreichen – ca. 28 Millionen Mal, in diesem Fall entpackt eine speziell vorbereitete 10-MB-Zip-Datei beispielsweise ca. 281 TB Daten).

Source: opennet.ru

Kommentar hinzufügen