A Cargo csomagkezelőben, amelyet a Rust nyelven írt projektek csomagjainak kezelésére és összeállítására használnak, két sebezhetőséget azonosítottak, amelyeket kihasználhatnak a külső tárolókból származó, kifejezetten formázott csomagok letöltésekor (állítólag a crates.io hivatalos tároló felhasználóit nem érinti a probléma). Az első sebezhetőség (CVE-2022-36113) lehetővé teszi a fájlok első két bájtjának felülírását a jelenlegi jogosultságoknak megfelelően. A második sebezhetőség (CVE-2022-36114) a lemezterület kimerítésére használható.
A sebezhetőségeket a Rust 1.64-es kiadásában javítják, amely szeptember 22-én esedékes. A sebezhetőségek alacsony kockázati szintet kaptak, mivel hasonló kár okozható a nem ellenőrzött csomagok külső tárolókból történő használatával a csomagokban mellékelt építési szkriptekből vagy eljárás makrókból indított kezelők elsődleges funkciójának kihasználásával. Az említett problémák abban különböznek, hogy azok kihasználása a csomag kicsomagolásának szakaszában történik a letöltés után (építési folyamat nélkül).
Konkrétan, a csomag letöltése után a cargo kicsomagolja annak tartalmát a ~/.cargo könyvtárba, és a sikeres kicsomagolás jeleit a .cargo-ok fájlban tárolja. Az első sebezhetőség lényege, hogy a csomag létrehozója szimbolikus linket helyezhet el a .cargo-ok névvel, ami arra vezet, hogy a link által mutatott fájlba a 'ok' szöveg íródik.
A második sebezhetőség abból adódik, hogy nincs korlátozás az archívumból kinyert adatok méretére, amelyet 'zip bombák' létrehozására lehet felhasználni (az archívumban olyan adatok helyezhetők el, amelyek a zip formátum maximális tömörítési arányát érik el - körülbelül 28 milliószoros tömörítést, ebben az esetben például egy speciálisan előkészített 10 MB-os zip fájl körülbelül 281 TB adatok kicsomagolásához vezet).
Forrás: opennet.ru
