Mga kahinaan sa Cargo package manager na ginagamit para sa mga proyekto ng Rust

Sa Cargo package manager, na ginamit upang pamahalaan ang mga pakete at bumuo ng mga proyekto sa Rust na wika, dalawang kahinaan ang natukoy na maaaring mapagsamantalahan kapag nagda-download ng mga espesyal na idinisenyong pakete mula sa mga third-party na repository (sinasaad na ang mga user ng opisyal na crates.io repository ay hindi apektado ng problema). Ang unang kahinaan (CVE-2022-36113) ay nagbibigay-daan sa unang dalawang byte ng anumang file na ma-overwrite hangga't pinapayagan ng kasalukuyang mga pahintulot. Ang pangalawang kahinaan (CVE-2022-36114) ay maaaring gamitin upang maubos ang espasyo sa disk.

Ang mga kahinaan ay aayusin sa pagpapalabas ng Rust 1.64, na naka-iskedyul para sa Setyembre 22. Ang mga kahinaan ay itinalaga ng mababang antas ng kalubhaan, dahil ang katulad na pinsala ay maaaring idulot kapag gumagamit ng hindi na-verify na mga pakete mula sa mga third-party na repository gamit ang karaniwang kakayahang maglunsad ng mga custom na humahawak mula sa mga script ng pagpupulong o mga macro ng pamamaraan na ibinigay sa package. Kasabay nito, ang mga nabanggit na problema ay naiiba sa na sila ay pinagsamantalahan sa yugto ng pagbubukas ng package pagkatapos mag-download (nang walang pagpupulong).

Sa partikular, pagkatapos mag-download ng package, i-unpack ng cargo ang mga nilalaman nito sa ~/.cargo directory at mag-iimbak ng tanda ng matagumpay na pag-unpack sa .cargo-ok file. Ang esensya ng unang kahinaan ay ang gumawa ng package ay maaaring maglagay ng simbolikong link sa loob na may pangalang .cargo-ok, na hahantong sa pagsulat ng text na "ok" sa file na itinuro ng link.

Ang pangalawang kahinaan ay sanhi ng kakulangan ng limitasyon sa laki ng data na nakuha mula sa archive, na maaaring magamit upang lumikha ng "zip bomb" (ang archive ay maaaring maglaman ng data na nagbibigay-daan sa pagkamit ng maximum na ratio ng compression para sa format ng zip - tungkol sa 28 milyong beses, sa kasong ito, halimbawa, ang isang espesyal na inihanda na 10 MB zip file ay magreresulta sa decompression ng humigit-kumulang 281 TB ng data).

Pinagmulan: opennet.ru

Magdagdag ng komento