Ranljivosti v upravitelju paketov Cargo, ki se uporablja za projekte Rust

V upravitelju paketov Cargo, ki se uporablja za upravljanje paketov in gradnjo projektov v jeziku Rust, sta bili ugotovljeni dve ranljivosti, ki ju je mogoče izkoristiti pri prenosu posebej zasnovanih paketov iz repozitorije tretjih oseb (navedeno je, da uporabniki uradnega repozitorija crates.io nanje težava ne vpliva). Prva ranljivost (CVE-2022-36113) omogoča prepisovanje prvih dveh bajtov katere koli datoteke, če to dovoljujejo trenutna dovoljenja. Drugo ranljivost (CVE-2022-36114) je mogoče uporabiti za izčrpavanje prostora na disku.

Ranljivosti bodo odpravljene v izdaji Rust 1.64, ki je predvidena za 22. september. Ranljivostim je dodeljena nizka stopnja resnosti, saj je lahko podobna škoda povzročena pri uporabi nepreverjenih paketov iz repozitorijev tretjih oseb z uporabo standardne zmožnosti za zagon obdelovalcev po meri iz zbirnih skriptov ali proceduralnih makrov, dobavljenih v paketu. Hkrati se zgoraj omenjene težave razlikujejo po tem, da se izkoriščajo v fazi odpiranja paketa po prenosu (brez montaže).

Zlasti po prenosu paketa cargo razpakira njegovo vsebino v imenik ~/.cargo in shrani znak uspešnega razpakiranja v datoteko .cargo-ok. Bistvo prve ranljivosti je v tem, da lahko ustvarjalec paketa notri postavi simbolno povezavo z imenom .cargo-ok, kar bo vodilo do zapisa besedila “ok” v datoteko, na katero kaže povezava.

Druga ranljivost je posledica pomanjkanja omejitve velikosti podatkov, ekstrahiranih iz arhiva, ki jih je mogoče uporabiti za ustvarjanje "zip bomb" (arhiv lahko vsebuje podatke, ki omogočajo doseganje največjega razmerja stiskanja za format zip - približno 28-milijonkrat, v tem primeru bo na primer posebej pripravljena 10 MB velika datoteka zip povzročila dekompresijo približno 281 TB podatkov).

Vir: opennet.ru

Dodaj komentar