Сиздин артыкчылыктарыңызды жогорулатууга мүмкүндүк берген Linux ядросунун VFS кемчилиги

Linux ядросу тарабынан берилген Filesystem Context API'де алсыздык (CVE-2022-0185) аныкталган, ал жергиликтүү колдонуучуга системада тамыр артыкчылыктарын алууга мүмкүндүк берет. Көйгөйдү аныктаган изилдөөчү Ubuntu 20.04 демейки конфигурациясында кодду root катары аткарууга мүмкүндүк берген эксплуатациянын демонстрациясын жарыялады. Эксплуатациялоо кодун 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

Source: opennet.ru

Комментарий кошуу