У ядры Linux выяўлены эксплуатаваныя ўразлівасці ў nf_tables, watch_queue і IPsec

У ядры Linux выяўлена некалькі небяспечных уразлівасцяў, якія дазваляюць лакальнаму карыстачу падвысіць свае прывілеі ў сістэме. Для ўсіх разгляданых праблем падрыхтаваны працоўныя прататыпы эксплоітаў.

  • Уразлівасць (CVE-2022-0995) у падсістэме адсочвання падзей watch_queue, якая прыводзіць да запісу дадзеных у вобласці памяці ядра за мяжой вылучанага буфера. Атака можа быць здзейснена любым непрывілеяваным карыстачом і прывесці да запуску свайго кода з правамі ядра. Уразлівасць прысутнічае ў функцыі watch_queue_set_size() і злучана са спробай ачысткі ўсіх паказальнікаў у спісе, нават калі для іх не была вылучаная памяць. Праблема выяўляецца пры зборцы ядра з опцыяй "CONFIG_WATCH_QUEUE=y", якая выкарыстоўваецца ў большасці дыстрыбутываў Linux.

    Уразлівасць ухілена ў змене, дададзеным у ядро ​​11 сакавіка. Прасачыць за публікацый абнаўлення пакетаў у дыстрыбутывах можна на дадзеных старонках: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Прататып эксплоіта ўжо даступны публічна і дазваляе атрымаць root-доступ пры запуску ў Ubuntu 21.10/5.13.0 з ядром 37-XNUMX.

    У ядры Linux выяўлены эксплуатаваныя ўразлівасці ў nf_tables, watch_queue і IPsec

  • Уразлівасць (CVE-2022-27666) у модулях ядра esp4 і esp6 з рэалізацыяй ESP-пераўтварэнняў (Encapsulating Security Payload) для IPsec, якія ўжываюцца пры выкарыстанні IPv4 і IPv6. Уразлівасць дазваляе лакальнаму карыстачу са звычайнымі прывілеямі перазапісаць аб'екты ў памяці ядра і падвысіць свае прывілеі ў сістэме. Праблема выклікана адсутнасцю зверкі вылучанага памеру памяці і фактычна атрыманых дадзеных пры тым, што максімальны памер паведамлення мог перавышаць максімальны памер памяці, які выдаткоўваецца для структуры skb_page_frag_refill.

    Уразлівасць ухіленая ў ядры 7 сакавіка (выпраўленая ў 5.17, 5.16.15 і да т.п.). Прасачыць за публікацый абнаўлення пакетаў у дыстрыбутывах можна на дадзеных старонках: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Працоўны прататып эксплоіта, які дазваляе звычайнаму карыстачу атрымаць root-доступ у Ubuntu Desktop 21.10 у канфігурацыі па змаўчанні, ужо размешчаны на GitHub. Сцвярджаецца, што пры малаважных зменах эксплоіт таксама будзе працаздольны ў Fedora і Debian. Характэрна, што эксплоіт першапачаткова быў падрыхтаваны для спаборніцтваў pwn2own 2022, але распрацоўшчыкі ядра выявілі і выправілі звязаную з ім памылку, таму было вырашана раскрыць дэталі ўразлівасці.

  • Дзве ўразлівасці (CVE-2022-1015, CVE-2022-1016) у падсістэме netfilter у модулі nf_tables, які забяспечвае працу пакетнага фільтра nftables. Першая праблема дазваляе лакальнаму непрывілеяванаму карыстачу дамагчыся запісы за межы вылучанага буфера ў стэку. Перапаўненне ўзнікае пры апрацоўцы вызначанай выявай аформленых выразаў nftables, апрацоўваных на этапе праверкі азначнікаў, зададзеных карыстачом, мелым доступ да правіл nftables.

    Уразлівасць выклікана тым, што распрацоўнікі меркавалі, што значэнне "enum nft_registers reg" з'яўляецца адным байтам, у той час як пры ўключэнні вызначаных аптымізацый кампілятар у адпаведнасці са спецыфікацыяй C89 можа выкарыстоўваць для яго 32-разраднае значэнне. З-за паказанай асаблівасці які выкарыстоўваецца пры праверцы і вылучэнні памяці памер не адпавядае фактычнаму памеру дадзеных у структуры, што прыводзіць да накладання хваста структуры на паказальнікі ў стэку.

    Праблема можа быць эксплуатаваная для выканання свайго кода на ўзроўні ядра, але для паспяховага нападу патрабуецца наяўнасць доступу да nftables, які можна атрымаць у асобнай сеткавай прасторы імёнаў (network namespaces) пры наяўнасці мае рацыю CLONE_NEWUSER або CLONE_NEWNET (напрыклад, пры магчымасці запуску ізаляванага кантэйнера). Уразлівасць таксама цесна злучана з ужывальнымі кампілятарам аптымізацыямі, якія, напрыклад, уключаюцца пры зборцы ў рэжыме «CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y». Эксплуатацыя ўразлівасці магчымая пачынальна з ядра Linux 5.12.

    Другая ўразлівасць у netfilter выкліканая зваротам да ўжо вызваленай вобласці памяці (use-after-free) у апрацоўшчыку 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

Дадаць каментар