Chyby zabezpečení ve správci balíčků Cargo používaného pro projekty Rust

Ve správci balíčků Cargo, který se používá ke správě balíčků a vytváření projektů v jazyce Rust, byly identifikovány dvě zranitelnosti, které lze zneužít při stahování speciálně navržených balíčků z repozitářů třetích stran (údajně uživatelé oficiálních beden. io úložiště nebyly tímto problémem ovlivněny). První chyba zabezpečení (CVE-2022-36113) umožňuje přepsání prvních dvou bajtů v libovolném souboru, pokud to aktuální oprávnění umožňují. Druhou chybu zabezpečení (CVE-2022-36114) lze zneužít k vyčerpání volného místa na disku.

Chyby zabezpečení budou opraveny ve verzi Rust 1.64, která je naplánována na 22. září. Zranitelnostem je přiřazena nízká úroveň závažnosti, protože podobné poškození při použití neověřených balíčků z úložišť třetích stran může způsobit standardní schopnost spouštět jejich ovladače ze skriptů sestavení nebo procedurálních maker dodávaných v balíčku. Současně se výše uvedené problémy liší v tom, že jejich operace se provádí ve fázi otevření obalu po naložení (bez montáže).

Konkrétně po načtení balíku cargo rozbalí svůj obsah do adresáře ~/.cargo a uloží známku úspěšného rozbalení do souboru .cargo-ok. Podstatou první chyby zabezpečení je, že tvůrce balíčku může dovnitř umístit symbolický odkaz s názvem .cargo-ok, který povede k napsání textu „ok“ do souboru, na který odkaz odkazuje.

Druhá zranitelnost je způsobena chybějícím omezením velikosti dat extrahovaných z archivu, které lze použít k vytvoření „zip bomb“ (data lze umístit do archivu pro dosažení maximálního kompresního poměru pro formát zip – asi 28 milionkrát, v tomto případě například speciálně připravený 10 MB zip soubor rozbalí asi 281 TB dat).

Zdroj: opennet.ru

Přidat komentář