I pakkeadministratoren Cargo, der anvendes til at styre pakker og opbygge projekter i Rust, er der opdaget to sårbarheder, der kan udnyttes ved at downloade specialdesignede pakker fra tredjepartsrepositorier (det hævdes, at brugerne af det officielle repository crates.io ikke er berørt af problemet). Den første sårbarhed (CVE-2022-36113) tillader overskrivning af de første to byte i enhver fil, så længe de nuværende adgangsrettigheder tillader det. Den anden sårbarhed (CVE-2022-36114) kan bruges til at udtømme ledig plads på disken.
Sårbarhederne vil blive løst i Rust version 1.64, der er planlagt til den 22. september. Sårbarhederne er klassificeret som lav risiko, da lignende skade kan forårsages ved brug af uverificerede pakker fra tredjepartsrepositorier gennem den indbyggede mulighed for at køre egne håndteringsprogrammer fra de leverede bygge-scripts eller procedurale makroer. De ovennævnte problemer adskiller sig dog ved, at deres udnyttelse finder sted ved afsløringen af pakken efter download (uden bygning).
Specifikt, efter at pakken er downloadet, pakker cargo dens indhold ud i kataloget ~/.cargo og gemmer en indikator for vellykket udpakning i filen .cargo-ok. Hovedproblemet med den første sårbarhed er, at pakken kan indeholde et symbolsk link med navnet .cargo-ok, hvilket vil resultere i, at teksten "ok" skrives til den fil, som linket refererer til.
Den anden sårbarhed skyldes manglen på begrænsning af størrelsen på data, der udtrækkes fra arkivet, hvilket kan udnyttes til at skabe "zip-bomber" (i arkivet kan der placeres data, der kan opnå den maksimale kompressionsgrad for zip-formatet - cirka 28 millioner gange, i dette tilfælde vil for eksempel en specielt forberedt zip-fil på 10 MB resultere i udpakning af omkring 281 TB data).
Kilde: opennet.ru
