Dobësitë e shfrytëzuara në nf_tables, watch_queue dhe IPsec janë identifikuar në kernelin Linux

Janë identifikuar disa dobësi të rrezikshme në kernelin Linux që lejojnë një përdorues lokal të rrisë privilegjet e tij në sistem. Për të gjitha problemet në shqyrtim janë përgatitur prototipe pune të shfrytëzimeve.

  • Një cenueshmëri (CVE-2022-0995) në nënsistemin e gjurmimit të ngjarjeve watch_queue lejon që të dhënat të shkruhen në një tampon jashtë kufijve në kujtesën e kernelit. Sulmi mund të kryhet nga çdo përdorues i paprivilegjuar dhe të rezultojë në ekzekutimin e kodit të tyre me të drejtat e kernelit. Dobësia ekziston në funksionin watch_queue_set_size() dhe shoqërohet me një përpjekje për të pastruar të gjithë treguesit në një listë, edhe nëse memoria nuk është ndarë për ta. Problemi shfaqet gjatë ndërtimit të kernelit me opsionin "CONFIG_WATCH_QUEUE=y", i cili përdoret në shumicën e shpërndarjeve Linux.

    Dobësia u adresua në një ndryshim të kernelit të shtuar më 11 mars. Ju mund të ndiqni publikimet e përditësimeve të paketave në shpërndarje në këto faqe: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Prototipi i shfrytëzimit është tashmë i disponueshëm publikisht dhe ju lejon të fitoni akses rrënjësor kur ekzekutoni në Ubuntu 21.10 me kernel 5.13.0-37.

    Dobësitë e shfrytëzuara në nf_tables, watch_queue dhe IPsec janë identifikuar në kernelin Linux

  • Dobësia (CVE-2022-27666) në modulet e kernelit esp4 dhe esp6 me implementimin e transformimeve ESP (Encapsulating Security Payload) për IPsec, e përdorur kur përdoret IPv4 dhe IPv6. Dobësia lejon një përdorues lokal me privilegje normale të mbishkruajë objektet në kujtesën e kernelit dhe të përshkallëzojë privilegjet e tyre në sistem. Problemi është shkaktuar nga mungesa e rakordimit midis madhësisë së memories së caktuar dhe të dhënave aktuale të marra, duke pasur parasysh se madhësia maksimale e mesazhit mund të tejkalojë madhësinë maksimale të memories së caktuar për strukturën skb_page_frag_refill.

    Dobësia u fiksua në kernel më 7 mars (rregulluar në 5.17, 5.16.15, etj.). Ju mund të ndiqni publikimet e përditësimeve të paketave në shpërndarje në këto faqe: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Një prototip funksional i shfrytëzimit, i cili lejon një përdorues të zakonshëm të fitojë qasje rrënjësore në Ubuntu Desktop 21.10 në konfigurimin e paracaktuar, tashmë është postuar në GitHub. Pretendohet se me ndryshime të vogla shfrytëzimi do të funksionojë edhe në Fedora dhe Debian. Vlen të përmendet se shfrytëzimi u përgatit fillimisht për konkursin pwn2own 2022, por zhvilluesit e kernelit identifikuan dhe korrigjuan një gabim të lidhur me të, kështu që u vendos që të zbuloheshin detajet e dobësisë.

  • Dy dobësi (CVE-2022-1015, CVE-2022-1016) në nënsistemin netfilter në modulin nf_tables, i cili siguron funksionimin e filtrit të paketave nftables. Çështja e parë lejon një përdorues lokal të paprivilegjuar të arrijë një shkrim jashtë kufijve në një buffer të alokuar në stek. Një tejmbushje ndodh kur përpunohen shprehjet nftables që janë formatuar në një mënyrë të caktuar dhe përpunohen gjatë fazës së kontrollit të indekseve të specifikuara nga një përdorues që ka akses në rregullat e nftables.

    Dobësia shkaktohet nga fakti që zhvilluesit nënkuptuan se vlera e "enum nft_registers reg" ishte një bajt i vetëm, kur kur u aktivizuan disa optimizime, përpiluesi, sipas specifikimit C89, mund të përdorte një vlerë 32-bit për të. . Për shkak të kësaj veçorie, madhësia e përdorur gjatë kontrollimit dhe ndarjes së memories nuk korrespondon me madhësinë aktuale të të dhënave në strukturë, gjë që çon në mbivendosjen e bishtit të strukturës me tregues në rafte.

    Problemi mund të shfrytëzohet për të ekzekutuar kodin në nivelin e kernelit, por një sulm i suksesshëm kërkon qasje në nftables, të cilat mund të merren në një hapësirë ​​të veçantë emri rrjeti me të drejta CLONE_NEWUSER ose CLONE_NEWNET (për shembull, nëse mund të ekzekutoni një kontejner të izoluar). Dobësia është gjithashtu e lidhur ngushtë me optimizimet e përdorura nga përpiluesi, të cilat, për shembull, aktivizohen gjatë ndërtimit në modalitetin "CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y". Shfrytëzimi i dobësisë është i mundur duke filluar me kernel Linux 5.12.

    Dobësia e dytë në netfilter është shkaktuar nga qasja në një zonë memorie tashmë të çliruar (use-after-free) në mbajtësin nft_do_chain dhe mund të çojë në një rrjedhje të zonave të painitializuara të memories së kernelit, të cilat mund të lexohen përmes manipulimeve me shprehjet nftables dhe të përdoren, për shembull, për të përcaktuar adresat e treguesve gjatë shfrytëzimit të zhvillimit për dobësi të tjera. Shfrytëzimi i cenueshmërisë është i mundur duke filluar me kernel Linux 5.13.

    Dobësitë trajtohen në arnimet e sotme të kernelit 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 dhe 4.9.309. Ju mund të ndiqni publikimet e përditësimeve të paketave në shpërndarje në këto faqe: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Studiuesi që identifikoi problemet njoftoi përgatitjen e eksploateve të punës për të dy dobësitë, të cilat janë planifikuar të publikohen brenda pak ditësh, pasi shpërndarjet lëshojnë përditësime në paketat e kernelit.

Burimi: opennet.ru

Shto një koment