Jaanuaris tuvastatud haavatavusest, mis vÔimaldas root-kasutajana sisse logida parooli kontrollimata, on GNU InetUtilsi telnetd serveris leitud mitu viisi privileegide tÔstmiseks, mis tulenesid haavatavuse mittetÀielikust kÔrvaldamisest 1999. aastal (CVE-1999-0073).
Haavatavused on pĂ”hjustatud telnetd-s klientide poolt serverisse keskkonnamuutujate edastamise vĂ”imalusest ENVIRON valikuga. Sellised keskkonnamuutujad seadistatakse ja töödeldakse telnetd protsessi kontekstis ning edastatakse tema kĂ€ivitatud alamprotsessidele, sealhulgas rooti Ă”igustes kĂ€ivitatavale protsessile /bin/login. CVE-1999-0073 haavatavus vĂ”imaldas telnet-kliendil edastada keskkonnamuutuja LD_LIBRARY_PATH, mis mÀÀrab kasutaja poolt antud jagatud teegi laadimise login protsessi kĂ€ivitamisel. Kui rĂŒndajal on vĂ”imalus failide laadimiseks sĂŒsteemi, mis toetab telnet-protokolli, suudab ta laadida spetsiaalselt kujundatud teegi ja korraldada selle laadimise root Ă”igustes.
GNU InetUtilsi telnetd-s kĂ”rvaldatakse haavatavus ohtlike keskkonnamuutujate blokkimisega, filtreerides maskide âLD_â, âLIBPATHâ, âENVâ, âIFSâ ja â_RLD_â kaudu. Samas jĂ€i blokeerimata keskkonnamuutuja âCREDENTIALS_DIRECTORYâ, mida töödeldakse /usr/bin/login kĂ€ivitamisel. Selle keskkonnamuutujaga sai kasutaja muuta autentimisandmete seadete katalooge ja paigutada uude kataloogi faili login.noauth vÀÀrtusega âyesâ, mis aktiveerib sisselogimise ilma paroolita (sarnane login protsessile edastatud â-fâ lipule). Seade kehtib kĂ”igi kasutajate, sealhulgas root, jaoks.
RĂŒnnak seisneb selles, et priviligeerimata kasutaja loob oma kodukatalooge alamsubkatalooge, laadib sinna faili login.noauth ja proovib siseneda, seadistades keskkonnamuutuja âCREDENTIALS_DIRECTORY=loodud kataloogâ ning edastades keskkonnamuutujat âUSER=rootâ (telnetis on automaatse ĂŒhenduse reĆŸiim, kus kasutajanimi vĂ”etakse mitte kĂ€surealt, vaid edastatakse keskkonnamuutujaga USER). NĂ€ide eksploitimisest.
Leiti oli tuvastatud veel ĂŒks meetod, kuidas saada root-juurdepÀÀs telnetd kaudu, mis on seotud GNU gettext'i raamatukogus töödeldud keskkonnaparameetrite OUTPUT_CHARSET ja LANGUAGE manipuleerimisega ning glibc-s kasutatava keskkonnaparameetriga GCONV_PATH. Asetades keskkonnaparameetrid OUTPUT_CHARSET ja LANGUAGE, saab rĂŒndaja aktiveerida gettext'i funktsionaalsuse, mis muundab sĂŒmbolite kodeeringut, kutsudes esile funktsiooni iconv_open(). Omakorda, kĂ€ivitades funktsiooni iconv_open() gconv-modules konfiguratsioonifaili laadimise ajal, arvutatakse tee, arvestades keskkonnaparameetrit GCONV_PATH. Gconv-modules faili asendamine vĂ”imaldab laadida kohandatud jagatud teeki lokaliseeritud stringi vĂ€ljundis login protsessi ajal.
CVE-identifikaatoreid olulistele haavatavustele ei ole veel mÀÀratud. Kaitsemeetodina kaalutakse lubatud vÀÀrtuste valge nimekirja kasutuselevĂ”ttu (âTERMâ, âDISPLAYâ, âUSERâ, âLOGNAMEâ ja âPOSIXLY_CORRECTâ), blokeerides kĂ”ik muud keskkonnaparameetrid, sarnaselt OpenSSH tööprotsessiga. Haavatavused on kinnitatud GNU InetUtils paketis, mille rakendamine telnetd on saadaval Debianis, Ubuntu ja selle tuletistes. Parandusi GNU InetUtils jaoks ei ole veel saadaval. serverilt Telnetd, mis tarnitakse Debianis, Ubuntu ja nende tuletistes. Rocky Linux 9 sisaldab muudetud telnetd-d, mis ei ole haavatav, ning kus ohtlike keskkonnaparameetrite filtreerimise asemel on kasutusele vĂ”etud valge nimekirja kontrollimine. Valge nimekirja filtreerimine on samuti rakendatud FreeBSD telnetd-s. OpenBSD telnetd eemaldati sĂŒsteemist 2005. aastal.
Allikas: opennet.ru
