Sårbarhet i Glibc ld.so, som tillåter att få root-rättigheter i systemet

Qualys har upptäckt en farlig sårbarhet (CVE-2023-4911) i länkaren ld.so, som ingår i den systematiska C-biblioteket Glibc (GNU libc). Sårbarheten gör det möjligt för en lokal användare att höja sina privilegier i systemet genom att ange speciellt formaterade data i miljövariabeln GLIBC_TUNABLES innan en körbar fil med suid root-flaggan körs, till exempel /usr/bin/su.

Möjligheten att framgångsrikt utnyttja sårbarheten har demonstrerats i Fedora 37 och 38, Ubuntu 22.04 och 23.04, Debian 12 och 13. Det antas att sårbarheten även förekommer i andra distributioner som använder Glibc. Distributioner baserade på det systematiska C-biblioteket Musl, såsom Alpine Linux, är inte drabbade. Sårbarheten åtgärdades i en patch som lades till den 2 oktober. Utsläppen av paketuppdateringar i distributionerna kan följas på sidorna för Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, Gentoo, ALT Linux.

Sårbarheten orsakades av en ändring som gjordes i april 2021 och inkluderades i utgåvan av glibc 2.34. På grund av ett fel i koden för parsning av strängen i miljövariabeln GLIBC_TUNABLES leder en felaktig kombination av parametrar i denna variabel till att det parserade värdet skrivs utanför den tilldelade bufferten. Problemet uppstår när parametrarna istället för standardsekvenserna 'name=val' anges i form av dubbel tilldelning 'name=name=val'. I detta fall bearbetas tilldelningen två gånger, först som 'name=name=val' och sedan som 'name=val'. På grund av denna dubbla behandling uppstår resultatet 'name=name=val:name=val', vars storlek överskrider storleken på bufferten 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

Det noteras särskilt att två sårbarheter har åtgärdats i Glibc:

  • CVE-2023-4806 — åtkomst till redan frigjord minnesområde (use-after-free) i funktionen getaddrinfo(), vilket uppstår när NSS-plugin endast implementerar callback-anropen "_gethostbyname2_r" och "_getcanonname_r", men inte stöder anropet "_gethostbyname3_r". För att sårbarheten ska utnyttjas måste DNS-servern returnera ett stort antal adresser IPv6 och IPv4 för den begärda värden, vilket leder till att processen som anropade getaddrinfo kraschar för familjen AF_INET6 när flaggorna AI_CANONNAME, AI_ALL och AI_V4MAPPED sätts.
  • CVE-2023-5156 — läcka av minnesinnehåll vid anrop av funktionen getaddrinfo för adressfamiljen AF_INET6 med flaggorna AI_CANONNAME, AI_ALL och AI_V4MAPPED.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster