Linux ядросында nf_tables, watch_queue және IPsec жүйелеріндегі пайдаланылатын осалдықтар анықталды.

Linux ядросында жергілікті пайдаланушыға жүйедегі артықшылықтарын арттыруға мүмкіндік беретін бірнеше қауіпті осалдықтар анықталды. Барлық қарастырылатын мәселелер үшін эксплуаттардың жұмыс прототиптері дайындалды.

  • watch_queue оқиғасын бақылау ішкі жүйесіндегі осалдық (CVE-2022-0995) деректерді ядро ​​жадындағы шектен тыс буферге жазуға мүмкіндік береді. Шабуыл кез келген артықшылығы жоқ пайдаланушымен жүзеге асырылуы мүмкін және оның ядролық құқықтарымен жұмыс істейтін кодының нәтижесі болуы мүмкін. Осалдық watch_queue_set_size() функциясында бар және олар үшін жад бөлінбеген болса да, тізімдегі барлық көрсеткіштерді жою әрекетімен байланысты. Мәселе Linux дистрибутивтерінің көпшілігінде қолданылатын "CONFIG_WATCH_QUEUE=y" опциясы бар ядроны құру кезінде орын алады.

    Бұл осалдық 11 наурызда қосылған ядро ​​​​өзгерісінде қарастырылды. Пакет жаңартуларының жарияланымдарын мына беттердегі дистрибуцияларда бақылай аласыз: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Эксплойт прототипі қазірдің өзінде жалпыға қолжетімді және Ubuntu 21.10 жүйесінде 5.13.0-37 ядросымен жұмыс істегенде түбірлік рұқсат алуға мүмкіндік береді.

    Linux ядросында nf_tables, watch_queue және IPsec жүйелеріндегі пайдаланылатын осалдықтар анықталды.

  • esp2022 және esp27666 ядро ​​модульдеріндегі осалдық (CVE-4-6) IPv4 және IPv6 пайдалану кезінде пайдаланылатын IPsec үшін ESP түрлендірулерін (Encapsulating Security Payload) жүзеге асырумен. Осалдық қалыпты артықшылықтары бар жергілікті пайдаланушыға ядро ​​жадындағы нысандарды қайта жазуға және олардың жүйедегі артықшылықтарын арттыруға мүмкіндік береді. Мәселе бөлінген жад өлшемі мен алынған нақты деректер арасындағы сәйкестендірудің болмауынан туындайды, себебі хабардың ең үлкен өлшемі skb_page_frag_refill құрылымы үшін бөлінген ең үлкен жад өлшемінен асуы мүмкін.

    Осалдық ядрода 7 наурызда түзетілді (5.17, 5.16.15 және т.б. түзетілді). Пакет жаңартуларының жарияланымдарын мына беттердегі дистрибуцияларда бақылай аласыз: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Қарапайым пайдаланушыға әдепкі конфигурацияда Ubuntu Desktop 21.10 жүйесіне түбірлік рұқсат алуға мүмкіндік беретін эксплойттың жұмыс прототипі GitHub сайтында жарияланған. Кішігірім өзгерістермен эксплойт Fedora және Debian-да да жұмыс істейтін болады деп айтылады. Бір қызығы, эксплойт бастапқыда pwn2own 2022 байқауына дайындалған, бірақ ядроны әзірлеушілер онымен байланысты қатені анықтап, түзеткен, сондықтан осалдықтың егжей-тегжейлерін ашу туралы шешім қабылданды.

  • nftables пакеттік сүзгісінің жұмысын қамтамасыз ететін nf_tables модуліндегі netfilter ішкі жүйесіндегі екі осалдық (CVE-2022-1015, CVE-2022-1016). Бірінші мәселе жергілікті артықшылығы жоқ пайдаланушыға стекке бөлінген буферге шектен тыс жазуға қол жеткізуге мүмкіндік береді. Белгілі бір жолмен пішімделген және nftables ережелеріне рұқсаты бар пайдаланушы көрсеткен индекстерді тексеру кезеңінде өңделетін nftables өрнектерін өңдеу кезінде толып кету орын алады.

    Осалдық әзірлеушілер "enum nft_registers reg" мәні бір байт болатынын болжағандықтан, белгілі бір оңтайландырулар қосылған кезде, компилятор C89 спецификациясына сәйкес ол үшін 32 биттік мәнді пайдалана алады. . Осы мүмкіндіктің арқасында жадты тексеру және бөлу кезінде қолданылатын өлшем құрылымдағы деректердің нақты өлшеміне сәйкес келмейді, бұл құрылымның құйрығын стектегі көрсеткіштермен қабаттасуға әкеледі.

    Мәселе ядро ​​деңгейінде кодты орындау үшін пайдаланылуы мүмкін, бірақ сәтті шабуыл CLONE_NEWUSER немесе CLONE_NEWNET құқықтарымен бөлек желілік аттар кеңістігінде алуға болатын nftables қол жеткізуді талап етеді (мысалы, оқшауланған контейнерді іске қосу мүмкін болса). Сондай-ақ осалдық компилятор пайдаланатын оңтайландырулармен тығыз байланысты, олар, мысалы, «CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y» режимінде құрастыру кезінде қосылады. Linux ядросының 5.12 нұсқасынан бастап осалдықты пайдалану мүмкін.

    Желі сүзгісіндегі екінші осалдық nft_do_chain өңдегішінде әлдеқашан босатылған жад аймағына (пайдаланғаннан кейін бос) қол жеткізуден туындайды және ядро ​​жадының инициализацияланбаған аймақтарының ағып кетуіне әкелуі мүмкін, оны nftables өрнектерімен манипуляциялар арқылы оқуға және қолдануға болады, мысалы, басқа осалдықтар үшін әзірлеу эксплойттері кезінде көрсеткіш мекенжайларын анықтау. Linux ядросының 5.13 нұсқасынан бастап осалдықты пайдалану мүмкін.

    Осалдықтар бүгінгі ядроның 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 және 4.9.309 патчтарында қарастырылған. Пакет жаңартуларының жарияланымдарын мына беттердегі дистрибуцияларда бақылай аласыз: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Мәселелерді анықтаған зерттеуші дистрибутивтер ядро ​​пакеттеріне жаңартуларды шығарғаннан кейін бірнеше күннен кейін жариялануы жоспарланған екі осалдық үшін жұмыс эксплойттарын дайындау туралы хабарлады.

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

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