Sebezhetőség a Glibc ld.so-ban, amely lehetővé teszi a root jogok megszerzését a rendszerben

A Qualys cég felfedezett egy veszélyes sebezhetőséget (CVE-2023-4911) az ld.so linkerben, amely a Glibc (GNU libc) rendszerszintű C könyvtár részeként kerül forgalomba. A sebezhetőség lehetővé teszi, hogy egy helyi felhasználó jogosultságokat emeljen a rendszerben a GLIBC_TUNABLES környezeti változóban megadott különösen formázott adatok megadásával, mielőtt elindítaná a fájlt suid root zászlóval, például: /usr/bin/su.

A sebezhetőség sikeres kihasználásának lehetőségét a Fedora 37 és 38, Ubuntu 22.04 és 23.04, Debian 12 és 13 rendszereken mutatták be. Feltételezhető, hogy a sebezhetőség megjelenik más disztribúciókban is, amelyek a Glibc-t használják. Az Musl rendszerszintű C könyvtárra épülő disztribúciók, mint az Alpine Linux, nincsenek kitéve a problémának. A sebezhetőséget javították a 2023. október 2-án hozzáadott javítócsomagban. A csomagok frissítéseit a Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, Gentoo és ALT Linux disztribúciók oldalain lehet nyomon követni.

A sebezhetőség egy 2021 áprilisában végrehajtott módosításból ered, amely a glibc 2.34-es kiadásába került. A GLIBC_TUNABLES környezeti változóban megadott sorfeldolgozási hibájának következtében, ha a paraméterek helytelen kombinációban szerepelnek ebben a változóban, az a parse-olt érték kifizetetlen memóriaterületre írását eredményezi. A probléma akkor jelentkezik, ha a szokásos „name=val” szekvenciák helyett a paramétereket duplázott hozzárendeléssel „name=name=val” formában adják meg. Ebben az esetben a hozzárendelést kétszer dolgozzák fel, először mint „name=name=val”, majd mint „name=val”. A hasonló dupla feldolgozás eredményeként a „name=name=val:name=val” kimenet jön létre, melynek mérete meghaladja a tunestr puffere méretét.

A kutatók egy stabilan működő exploitot készítettek, amely lehetővé teszi a root jogosultságok megszerzését szinte bármelyik, suid root jelzővel rendelkező program használatakor. Kivételt képeznek a sudo segédprogram (amely megváltoztatja az ELF RUNPATH értékét), a chage és passwd segédprogramok Fedora alatt (amelyek külön SELinux szabályok által védettek), valamint a snap-confine segédprogram Ubuntu alatt (amelyet külön AppArmor szabályok védenek). A javasolt kiaknázási módszer szintén nem működik RHEL 8 és RHEL 9 alatt, bár ezek a verziók ki vannak téve a sebezhetőségnek (a támadáshoz másik exploit létrehozása szükséges). Az exploit kódja később kerül publikálásra a sebezhetőség teljes körű megszüntetése után. A rendszer sebezhetőségének ellenőrzésére az alábbi parancs használható, amely, ha probléma merül fel, összeomlással végződik: env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '192x' 1`" \/usr\/bin\/su —help

Külön emeljük ki a Glibc két további sérülékenységének megszüntetését:

  • CVE-2023-4806 — már felszabadított memória terület (use-after-free) elérése a getaddrinfo() függvényben, amely akkor jelentkezik, amikor az NSS plugin csak a „_gethostbyname2_r” és „_getcanonname_r” callback hívásokat valósítja meg, de nem támogatja a „_gethostbyname3_r” hívást. A sérülékenység kihasználásához a DNS szervernek sok IPv6 és IPv4 címet kell visszaadnia a kért host számára, ami a getaddrinfo függvény hívását végző folyamat összeomlását eredményezi az AF_INET6 címzési család esetén, amikor az AI_CANONNAME, AI_ALL és AI_V4MAPPED zászlók be vannak állítva.
  • CVE-2023-5156 — memória tartalom szivárgás a getaddrinfo hívásakor az AF_INET6 címcsoport számára, AI_CANONNAME, AI_ALL és AI_V4MAPPED zászlók beállítása mellett.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster