A Rust projektekhez használt Cargo csomagkezelő biztonsági rései

A Rust nyelvű csomagok kezelésére és projektek felépítésére használt Cargo csomagkezelőben két olyan biztonsági rést azonosítottak, amelyek kihasználhatók speciálisan kialakított csomagok harmadik féltől származó tárolókból történő letöltésekor (az adatok szerint a hivatalos crates.io tároló felhasználói nem érinti őket a probléma). Az első biztonsági rés (CVE-2022-36113) lehetővé teszi bármely fájl első két bájtjának felülírását, amíg az aktuális engedélyek ezt lehetővé teszik. A második biztonsági rés (CVE-2022-36114) lemezterület kimerítésére használható.

A sérülékenységeket a Rust 1.64 szeptember 22-re tervezett kiadásában javítják ki. A sérülékenységek alacsony szintű súlyosságot kapnak, mivel hasonló károkat okozhat, ha nem ellenőrzött csomagokat használ harmadik féltől származó tárolókból, amikor a csomagban található összeállítási parancsfájlokból vagy eljárási makrókból egyéni kezelőket indítanak el. Ugyanakkor a fent említett problémák abban különböznek egymástól, hogy a csomag letöltés utáni (összeszerelés nélküli) megnyitásának szakaszában használják ki őket.

Egy csomag letöltése után a cargo kicsomagolja annak tartalmát a ~/.cargo könyvtárba, és eltárolja a sikeres kicsomagolás jelét a .cargo-ok fájlban. Az első sérülékenység lényege, hogy a csomag létrehozója egy szimbolikus hivatkozást helyezhet el benne .cargo-ok néven, ami az „ok” szöveget fogja írni a hivatkozás által mutatott fájlba.

A második sérülékenységet az okozza, hogy nincs korlátozva az archívumból kinyert adatok mérete, amelyek segítségével „zip bombák” készíthetők (az archívum olyan adatokat tartalmazhat, amelyek lehetővé teszik a zip formátum maximális tömörítési arányának elérését - kb. 28 millió alkalommal, ebben az esetben például egy speciálisan elkészített 10 MB-os zip fájl körülbelül 281 TB adat kitömörítését eredményezi.

Forrás: opennet.ru

Hozzászólás