Uus haavatavuste seeria telnetd-s, mis võimaldab süsteemis saada root õigusi.

Pärast jaanuari lõpus avastatud haavatavust, mis lubas siseneda root kasutajana ilma parooli kontrollimiseta, on GNU InetUtils'i telnetd serveris avastatud mitu viisi õiguste tõstmiseks, mis on osa 1999. aastal esinenud haavatavuse mitte täielikust kõrvaldamisest (CVE-1999-0073).

Haavatavused tulenevad telnetd-s kliendi poolt serverisse keskkonnamuutujate edastamise võimalusest ENVIRON valiku kaudu. Sellised keskkonnamuutujad seadistatakse ja neid käsitletakse telnetd protsessi kontekstis ning edastatakse tema loodud alamprotsessidele, sealhulgas root õigustega käivitatavale protsessile /bin/login. Haavatavus CVE-1999-0073 võimaldas telnet kliendil edastada keskkonnamuutujat LD_LIBRARY_PATH, mille seadistamine viis kasutaja määratud jagatud teegi laadimisele login protsessi käivitamisel. Kui failide laadimine süsteemi, mis toetab telnet-protokolli, on lubatud, võib ründaja laadida spetsiaalselt loodud teegi ja korraldada selle laadimise root õigustega.

GNU InetUtils telnetd-s on leiti turvaauend, mis takistas ohtlike keskkonnamuutujate filtreerimist maskide „LD_“, „LIBPATH“, „ENV“, „IFS“ ja „_RLD_“ kaudu. Siiski jäi blokeerimata keskkonnamuutuja „CREDENTIALS_DIRECTORY“, mis töödeldi käivitamisel /usr/bin/login. Selle keskkonnamuutuja abil sai kasutaja muuta autentimise seadete katalooge ja seal uues kataloogis luua faili login.noauth väärtusega „yes“, mis aktiveerib sisselogimise ilma paroolita (sarnane protsessile login edastatud lipuga „-f“). Seade kehtib kõigi kasutajate, sealhulgas rooti jaoks.

Rünnak seisneb mitteprivilliigitud kasutaja loodud alamkatalooge tema kodukataloogis, faili login.noauth sinna laadimises ning sisselogimise katses, seadistades keskkonnamuutuj „CREDENTIALS_DIRECTORY=loodud kataloog“ ja andes keskkonnamuutuja „USER=root“ (telnetil on automaatse ühenduse režiim, kus kasutajanimi ei pärine käsurealt, vaid edastatakse läbi keskkonnamuutuj USER). Näide eksploitimisest.

Leiti välja veel üks võimalus root-juurdepääsu saamiseks telnetd kaudu, mis on seotud keskkonnamuutujate OUTPUT_CHARSET ja LANGUAGE manipuleerimisega, mida töötleb GNU gettext raamatukogu, ning keskkonnamuutujaga GCONV_PATH, mida kasutatakse glibc-s. Seades keskkonnamuutujad OUTPUT_CHARSET ja LANGUAGE, saab ründaja aktiveerida gettext funktsionaalsuse sümbolite kodeeringu konverteerimiseks, kutsudes esile funktsiooni iconv_open(). Omakorda arvutatakse funktsiooni iconv_open() täitmisel gconv-modules konfiguratsioonifaili laadimisel tee GCONV_PATH keskkonnamuutujat arvestades. Faili gconv-modules asendamise kaudu on võimalik korraldada enda jagatud raamatukogu laadimist lokaliseeritud stringi väljastamise ajal login protsessi kaudu.

CVE-ids määratud haavatavustele pole veel määratud. Kaitsemeetodina kaalutakse lubatud väärtuste valge nimekirja kasutuselevõttu („TERM“, „DISPLAY“, „USER“, „LOGNAME“ ja „POSIXLY_CORRECT“) koos teiste keskkonnamuutujate blokeerimisega, sarnaselt sellele, kuidas keskkonnamuutujate töö toimub OpenSSH-s. Haavatavused on kinnitatud GNU InetUtils paketis, rakendamine serverile telnetd, mis tarnib Debianis, Ubuntu ja tuletatud distributsioonides. GNU InetUtilsi jaoks pole parandusi veel saadaval. Rocky Linux 9 toob kaasa muudetud telnetd, mis ei ole haavatav, kus ohtlike keskkonnamuutujate filtreerimise asemel on kasutusele võetud valge nimekiri. Valge nimekirja filtreerimine on samuti rakendatud FreeBSD telnetd-s. OpenBSD telnetd eemaldati süsteemist 2005. aastal.

Allikas: opennet.ru

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