Rust жобалары үшін пайдаланылатын Cargo пакетінің менеджеріндегі осалдықтар

Бумаларды басқару және Rust тілінде жобаларды құру үшін пайдаланылатын Жүк пакетінің менеджерінде үшінші тарап репозиторийлерінен арнайы әзірленген пакеттерді жүктеп алу кезінде пайдалануға болатын екі осалдық анықталды (ресми crates.io репозиторийінің пайдаланушылары көрсетілген. мәселе әсер етпейді). Бірінші осалдық (CVE-2022-36113) ағымдағы рұқсаттар рұқсат еткенше кез келген файлдың алғашқы екі байтын қайта жазуға мүмкіндік береді. Екінші осалдық (CVE-2022-36114) дискілік кеңістікті пайдалану үшін пайдаланылуы мүмкін.

Осалдықтар 1.64 қыркүйекке жоспарланған Rust 22 шығарылымында түзетіледі. Осалдықтарға төмен дәрежелі ауырлық дәрежесі тағайындалған, өйткені үшінші тарап репозитарийлерінен тексерілмеген бумаларды пайдалану кезінде ұқсас зиян құрастыру сценарийлерінен немесе пакетте берілген процедуралық макростардан реттелетін өңдеушілерді іске қосудың стандартты мүмкіндігін пайдалану арқылы туындауы мүмкін. Сонымен қатар, жоғарыда аталған мәселелер жүктеп алғаннан кейін (құрастырусыз) пакетті ашу сатысында пайдаланылуымен ерекшеленеді.

Атап айтқанда, пакетті жүктеп алғаннан кейін жүк оның мазмұнын ~/.cargo каталогына ашады және .cargo-ok файлында сәтті ашылғанының белгісін сақтайды. Бірінші осалдықтың мәні мынада: пакетті жасаушы ішіне .cargo-ok атауы бар символдық сілтемені орналастыра алады, бұл сілтемемен көрсетілген файлға «ok» мәтінін жазуға әкеледі.

Екінші осалдық «zip бомбаларын» жасау үшін пайдаланылуы мүмкін мұрағаттан алынған деректер көлеміне шектеудің болмауынан туындайды (мұрағатта zip форматы үшін максималды қысу коэффициентіне қол жеткізуге мүмкіндік беретін деректер болуы мүмкін - шамамен 28 миллион рет, бұл жағдайда, мысалы, арнайы дайындалған 10 Мбайт zip файлы шамамен 281 ТБ деректердің декомпрессиясына әкеледі).

Ақпарат көзі: opennet.ru

пікір қалдыру