V balíkovom manažéri Cargo, ktorý sa používa na správu balíkov a zostavovanie projektov v jazyku Rust, boli objavené dve zraniteľnosti, ktoré môžu byť zneužité pri sťahovaní špeciálne upravených balíkov z externých repozitárov (tvrdí sa, že používateľov oficiálneho repozitára crates.io sa problém netýka). Prvá zraniteľnosť (CVE-2022-36113) umožňuje prepísať prvé dva bajty v akomkoľvek súbore, čo umožňujú aktuálne prístupové práva. Druhá zraniteľnosť (CVE-2022-36114) môže byť použitá na vyčerpanie voľného miesta na disku.
Zraniteľnosti budú odstránené vo verzii Rust 1.64, naplánovanej na 22. septembra. Zraniteľnostiam bol priradený nízky stupeň nebezpečenstva, pretože podobnú škodu pri používaní neoverených balíkov z externých repozitárov môže spôsobiť pomocou bežnej funkčnosti spúšťania vlastných spracovateľov z dodávaných v balíku zostavovacích skriptov alebo procedurálnych makier. Tieto problémy sa však líšia tým, že ich zneužívanie sa vykonáva v štádiu rozbalenia balíka po sťahovaní (bez zostavovania).
Konkrétne, po stiahnutí balíka cargo rozbaľuje jeho obsah do priečinka ~/.cargo a uchováva znak úspešného rozbalenia v súbore .cargo-ok. Podstata prvej zraniteľnosti spočíva v tom, že tvorca balíka môže umiestniť vo vnútri symbolický odkaz s názvom .cargo-ok, čo vedie k zapísaniu textu 'ok' do súboru, na ktorý odkaz smeruje.
Druhá zraniteľnosť je spôsobená absenciou obmedzenia na veľkosť vyťažovaných z archívu údajov, čo môže byť využité na vytvorenie zvaných 'zip-bomb' (v archíve môžu byť umiestnené údaje, ktoré umožňujú dosiahnuť maximálnu mieru kompresie pre formát zip - približne 28 miliónov násobne, v takom prípade by napríklad špeciálne spracovaný zip-súbor o veľkosti 10 MB viedol k rozbaleniu asi 281 TB údajov).
Zdroj: opennet.ru
