Артықшылықтарыңызды арттыруға мүмкіндік беретін Linux ядросының VFS осалдығы

Linux ядросы ұсынған Filesystem Context API интерфейсінде осалдық (CVE-2022-0185) анықталды, бұл жергілікті пайдаланушыға жүйеде түбірлік артықшылықтарды алуға мүмкіндік береді. Мәселені анықтаған зерттеуші әдепкі конфигурацияда Ubuntu 20.04 жүйесінде кодты түбір ретінде орындауға мүмкіндік беретін эксплуатацияның көрсетілімін жариялады. Эксплуатация кодын GitHub сайтында таратулар осалдықты түзететін жаңартуды шығарғаннан кейін бір апта ішінде орналастыру жоспарлануда.

Осалдық VFS жүйесіндегі legacy_parse_param() функциясында бар және Filesystem Context API интерфейсіне қолдау көрсетпейтін файлдық жүйелерде берілген параметрлердің ең үлкен өлшемін дұрыс тексерудің сәтсіздігінен туындайды. Тым үлкен параметрді беру жазылатын деректердің өлшемін есептеу үшін пайдаланылатын бүтін айнымалының толып кетуін тудыруы мүмкін - кодта «егер (len > PAGE_SIZE - 2 - өлшем)» буфердің толып кетуін тексеру бар, ол жоқ. өлшемнің мәні 4094-тен үлкен болса жұмыс. төменгі шекара арқылы бүтін санның асып кетуі үшін (бүтін санның асты ағыны, 4096 - 2 - 4095 қолтаңбасы жоқ int-ке құйылғанда, нәтиже 2147483648).

Бұл қате арнайы жасалған файлдық жүйе кескініне қатынасу кезінде буфердің толып кетуіне және бөлінген жад аймағынан кейін ядро ​​деректерін қайта жазуға мүмкіндік береді. Осалдықты пайдалану үшін сізде CAP_SYS_ADMIN құқықтары болуы керек, яғни. әкімші өкілеттіктері. Мәселе мынада, егер жүйеде пайдаланушы аттар кеңістігіне қолдау қосылған болса, артықшылығы жоқ пайдаланушы мұндай рұқсаттарды оқшауланған контейнерде ала алады. Мысалы, пайдаланушы аттар кеңістігі Ubuntu және Fedora жүйелерінде әдепкі бойынша қосылады, бірақ Debian және RHEL жүйелерінде қосылмайды (контейнерді оқшаулау платформалары пайдаланылмаса).

Мәселе Linux ядросының 5.1 нұсқасынан бері пайда болды және кешегі 5.16.2, 5.15.16, 5.10.93, 5.4.173 жаңартуларында түзетілді. Осалдықты түзететін бума жаңартулары RHEL, Debian, Fedora және Ubuntu үшін шығарылған. Түзету Arch Linux, Gentoo, SUSE және openSUSE жүйелерінде әлі қол жетімді емес. Контейнерді оқшаулауды пайдаланбайтын жүйелер үшін қауіпсіздіктің уақытша шешімі ретінде sysctl "user.max_user_namespaces" мәнін 0 мәніне орнатуға болады: echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf

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

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