Glibcis ld.so haavatavus, mis võimaldab saada süsteemis root-õigused.

Qualys ettevõte avastas tõsise haavatavuse (CVE-2023-4911) ld.so laadijates, mis tarnitakse koos süsteemi C-raamatukoguga Glibc (GNU libc). See haavatavus võimaldab kohalikel kasutajatel oma õigusi süsteemis tõsta, kui nad määravad ettevalmistatud andmed keskkonnamuutuja GLIBC_TUNABLES kaudu, enne kui käivitavad täidetava faili, millel on suid root lipp, näiteks /usr/bin/su.

Haavatavuse edukat ärakasutamist on demonstreeritud Fedora 37 ja 38, Ubuntu 22.04 ja 23.04, Debian 12 ja 13 versioonides. Eeldatakse, et haavatavus esineb ka teistes distributsioonides, mis kasutavad Glibc. Musl süsteemi C-raamatukogul baseeruvad distributsioonid, nagu Alpine Linux, ei ole selle probleemiga mõjutatud. Haavatavus on kõrvaldatud 2. oktoobril lisatud plaastris. Pakettide uuenduste väljaandmist distributsioonides saab jälgida Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, Gentoo ja ALT Linuxi lehtedel.

Haavatavus on põhjustatud aprillis 2021 tehtud muudatusest, mis on osa glibc 2.34 väljaandest. Koodivigade tõttu keskkonnamuutuja GLIBC_TUNABLES in stringiparses võib vale parameterite kombinatsioon põhjustada parsi väljundi kirjutamist määratud puuteväljast väljapoole. Probleem ilmneb, kui standardsete järjestuste "name=val" asemel on parametreid määratud kaheksatähega määramisest "name=name=val". Sellisel juhul töödeldakse määramist kahel korral, esmalt "name=name=val" ja seejärel "name=val". Sellise topelt töötlemise tulemusena tekib "name=name=val:name=val", mille suurus ületab tunestri pöördumise suuruse.

Исследователями подготовлен стабильно работающий эксплоит, который позволяет получить права root при применении практически с любой программой с флагом suid root. Исключение составляют утилита sudo (меняет значение ELF RUNPATH), утилиты chage и passwd в Fedora (защищены отдельными правилами SELinux) и утилита snap-confine в Ubuntu (защищена отдельными правилами AppArmor). Предложенный метод эксплуатации также не работает в RHEL 8 и RHEL 9, хотя данные ветки и подвержены уязвимости (для атаки требуется создание иного эксплоита). Код эксплоита будет опубликован позднее после повсеместного устранения уязвимости. Проверить подверженность своей системы уязвимости можно ниже указанной командой, которая в случае наличия проблемы завершиться крахом: env -i «GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A» «Z=`printf ‘%08192x’ 1`» /usr/bin/su —help

Erakordselt märgitakse, et Glibcis on kõrvaldatud veel kaks haavatavust:

  • CVE-2023-4806 — juba vabastatud mälu piirkonna (use-after-free) probleem getaddrinfo() funktsioonis, mis ilmneb, kui NSS-plugin rakendab ainult call-back-kõnesid „_gethostbyname2_r“ ja „_getcanonname_r“, kuid ei toeta kõnet „_gethostbyname3_r“. Haavatavuse kasutamiseks peab DNS-server tagastama suures koguses IPv6 ja IPv4 aadresse, mis põhjustab protsessi kokkujooksmise, mis kutsus getaddrinfo funktsiooni üles AF_INET6 perekonna puhul, kui lipud AI_CANONNAME, AI_ALL ja AI_V4MAPPED on seatud.
  • CVE-2023-5156 — mälu sisu leke getaddrinfo funktsiooni kutsumise ajal aadressiperekonna AF_INET6 puhul, kui lipud AI_CANONNAME, AI_ALL ja AI_V4MAPPED on seatud.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster