Företaget Qualys har upptÀckt en farlig sÄrbarhet (CVE-2023-6246) i standard C-biblioteket Glibc, som möjliggör exekvering av egen kod med förhöjda privilegier genom manipulation av SUID-applikationer vid körning. Forskare har lyckats utveckla en fungerande exploit som gör det möjligt att fÄ root-behörighet genom att manipulera kommandoradsargument vid körning av verktyget su.
SÄrbarheten orsakas av en buffertöverskridning i funktionen __vsyslog_internal(), som anvÀnds vid anrop av funktionerna syslog() och vsyslog(). Problemet uppstÄr pÄ grund av ett fel vid försök att skriva ut ett för lÄngt applikationsnamn genom makrot SYSLOG_HEADER. Vid försök att utöka bufferten med ett lÄngt namn uppstÄr ett fel, vilket gör att data skrivs till den ursprungliga bufferten av mindre storlek.
Vid organisering av en attack via verktyget su kan angriparen Àndra processnamnet vid körning av applikationen genom att ersÀtta vÀrdet i argv[0], vilket anvÀnds för att hÀmta information om programnamnet vid loggutskrift, och Ästadkomma kontrollerad omskrivning av data utanför den allokerade bufferten. Denna buffertöverskridning kan sedan anvÀndas för att skriva över strukturen nss_module i biblioteket nss för att skapa ett delat bibliotek och ladda det med root-behörigheter.
Problemet upptrÀder med versionen glibc 2.37, som publicerades i augusti 2022 och innehÄller en Àndring som hanterar situationen vid försök att skriva för stora meddelanden. Den sÄrbarhetsintroducerande rÀttningen har bakportats till grenen glibc 2.36 och distributionspaket med Àldre versioner av glibc, eftersom den berörda rÀttningen ÄtgÀrdade sÄrbarheten CVE-2022-39046, vilket ledde till datalÀckage frÄn heap-minnet. Resultatet blev att en icke-kritisk sÄrbarhet ledde till en kritisk problematik. Det Àr anmÀrkningsvÀrt att en liknande sÄrbarhet i funktionen vsyslog() i biblioteket libc 5.4.3 rapporterades redan 1997.
SÄrbarheten Àr bekrÀftad i Debian 12/13, Ubuntu 23.04/23.10 och Fedora 37-39. Arbete med exploiten för att ge en icke-privilegierad anvÀndare root-rÀttigheter har visats i en helt uppdaterad Fedora 38-miljö med alla standard sÀkerhetsmekanismer aktiverade. SÄrbarheten kan endast utnyttjas lokalt, eftersom den krÀver överföring av mer Àn 1024 byte via parametern argv[0] eller argumentet ident i funktionen openlog().
Fixen för sÄrbarheten inkluderades för flera timmar sedan i Glibc-kodbasen och kommer att ingÄ i morgondagens uppdatering av Glibc 2.39, tillsammans med fixar för ytterligare tvÄ sÄrbarheter (CVE-2023-6779, CVE-2023-6780) som ocksÄ pÄverkar koden för __vsyslog_internal() och kan orsaka buffertöverskridning. Dessutom varnar företaget Qualys för en upptÀckt av buffertöverskridning i implementeringen av funktionen qsort(), som inte har klassificerats som en sÄrbarhet av Glibc-utvecklarna, eftersom utnyttjandet innebÀr anvÀndning av en ovanlig jÀmförelsefunktion som returnerar skillnaden mellan de jÀmförda parametrarna som argument vid anrop av qsort.
Statusen för Ă„tgĂ€rder av sĂ„rbarheter i distributioner kan bedömas med data frĂ„n följande sidor: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. För att testa systemets utsatthet för sĂ„rbarhet kan följande kommando anvĂ€ndas: $ (exec -a «`printf â28000xâ 1`» /usr/bin/su < /dev/null)
KĂ€lla: opennet.ru
