Kompania Qualys identifikoi një vulnerabilitet të rrezikshëm (CVE-2023-4911) në lidhësin ld.so, i cili ofrohet si pjesë e bibliotekës së sistemit C Glibc (GNU libc). Ky vulnerabilitet lejon një përdorues lokal të rrisë privilegjet e tij në sistem duke specifikuar të dhëna të formatuara në mënyrë të veçantë në ndryshoren mjedisore GLIBC_TUNABLES para se të ekzekutohet një skedar me flamurin suid root, për shembull, /usr/bin/su.
Possibiliteti i shfrytëzimit të suksesit të këtij vulnerabiliteti është demonstruar në Fedora 37 dhe 38, Ubuntu 22.04 dhe 23.04, Debian 12 dhe 13. Supozohet se ky vulnerabilitet manifeston gjithashtu në çdo distro tjetër që përdor Glibc. Distribucioni i bazuar në bibliotekën sistemike C Musl, si Alpine Linux, nuk është i prekur nga ky problem. Vulnerabiliteti është korrigjuar në një patch të shpërndarë më 2 tetor. Mund të ndiqni lëshimin e përditësimeve të paketave në distribucionet e ndryshme si Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, Gentoo, ALT Linux.
Ky vulnerabilitet është shkaktuar nga një ndryshim i bërë në prill 2021 dhe i përfshirë në versionin e glibc 2.34. Për shkak të një gabimi në kodin e analizës së vargut të specifikuar në ndryshoren mjedisore GLIBC_TUNABLES, një kombinim i pasaktë i parametrove në këtë variabël çon në shkrimin e vlerës së analizuar jashtë bufrit të alokuar. Problemi shfaqet kur, në vend të sekuencave standarde "name=val", parametrat caktohen në formën me c dyfishim, "name=name=val". Në këtë rast, caktimi përpunohen dy herë, fillimisht si "name=name=val", dhe më pas si "name=val". Si rezultat i këtij përpunimi të dyfishtë, krijohet rezultati "name=name=val:name=val", të cilin e kalon madhësinë e bufrit tunestr.
Исследователями подготовлен стабильно работающий эксплоит, который позволяет получить права 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
Veçanërisht vlen të theksohet zgjidhja në Glibc të dy vulnerabiliteteve të tjera:
- CVE-2023-4806 — referenca në një zonë të liruar të memories (use-after-free) në funksionin getaddrinfo(), i cili shfaqet kur plugini NSS implementon vetëm thirrjet në prapavijë "_gethostbyname2_r" dhe "_getcanonname_r", por nuk mbështet thirrjen "_gethostbyname3_r". Për të shfrytëzuar këtë vulnerabilitet, serveri DNS duhet të kthejë një numër të madh adresash IPv6 dhe IPv4 për hostin e kërkuar, i cili do të çonte në crashes të procesit që ka thirrur funksionin getaddrinfo për familjen AF_INET6 duke vendosur flamujt AI_CANONNAME, AI_ALL dhe AI_V4MAPPED.
- CVE-2023-5156 — rrjedhja e përmbajtjes së memories gjatë thirrjes së funksionit getaddrinfo për familjen e adresave AF_INET6 me flamujt AI_CANONNAME, AI_ALL dhe AI_V4MAPPED.
Burimi: opennet.ru
