Vulnerabilitats al gestor de paquets Cargo utilitzat per als projectes Rust

En el gestor de paquets Cargo, que s'utilitza per gestionar paquets i construir projectes en llenguatge Rust, s'han identificat dues vulnerabilitats que es poden explotar quan es descarreguen paquets especialment dissenyats des de repositoris de tercers (es diu que els usuaris del repositori oficial de crates.io no es veuen afectats pel problema). La primera vulnerabilitat (CVE-2022-36113) permet sobreescriure els dos primers bytes de qualsevol fitxer sempre que ho permetin els permisos actuals. La segona vulnerabilitat (CVE-2022-36114) es pot utilitzar per esgotar l'espai del disc.

Les vulnerabilitats es solucionaran amb el llançament de Rust 1.64, previst per al 22 de setembre. A les vulnerabilitats se'ls assigna un nivell de gravetat baix, ja que es poden causar danys similars quan s'utilitzen paquets no verificats de repositoris de tercers utilitzant la capacitat estàndard de llançar controladors personalitzats a partir de scripts de muntatge o macros de procediment que s'ofereixen al paquet. Al mateix temps, els problemes esmentats anteriorment es diferencien pel fet que s'aprofiten en l'etapa d'obertura del paquet després de la descàrrega (sense muntatge).

En particular, després de descarregar un paquet, la càrrega desempaqueta el seu contingut al directori ~/.cargo i emmagatzema un senyal de desempaquetat correcte al fitxer .cargo-ok. L'essència de la primera vulnerabilitat és que el creador del paquet pot col·locar un enllaç simbòlic a l'interior amb el nom .cargo-ok, que portarà a escriure el text "ok" al fitxer apuntat per l'enllaç.

La segona vulnerabilitat és causada per la manca d'un límit a la mida de les dades extretes de l'arxiu, que es poden utilitzar per crear "bombes zip" (l'arxiu pot contenir dades que permetin assolir la relació de compressió màxima per al format zip - aproximadament 28 milions de vegades, en aquest cas, per exemple, un fitxer zip de 10 MB preparat especialment donarà lloc a la descompressió d'aproximadament 281 TB de dades).

Font: opennet.ru

Afegeix comentari