Pas ndjekjes së një dobësie të zbuluar në fund të janarit, e cila lejonte lidhjen si përdorues root pa verifikim të fjalëkalimit, në serverin telnetd të paketës GNU InetUtils u identifikuan disa mënyra për të rritur privilegjet, si pasojë e eliminimit të pamjaftueshëm të dobësisë në vitin 1999 (CVE-1999-0073).
Dobësitë janë shkaktuar nga ekzistenca në telnetd të mundësisë për të dërguar variabla ambienti nga klienti në server përmes opsionit ENVIRON. Të tillë variabla ambienti vendosen dhe përpunohen në kontekstin e procesit telnetd dhe kalohen në proceset e tij fëmijë të ekzekutuara, duke përfshirë procesin e nisur me privilegje root /bin/login. Dobësia CVE-1999-0073 lejonte klientin telnet të dërgonte variablën ambienti LD_LIBRARY_PATH, vendosja e së cilës çon në ngarkimin e bibliotekës së ndarë të specifikuar nga përdoruesi gjatë nisjes së procesit login. Nëse ka mundësi për të ngarkuar skedarë në një sistem që mbështet lidhjen përmes protokollit telnet, sulmuesi mund të ngarkohet një bibliotekë të hartuar veçmas dhe të organizojë ngarkimin e saj me privilegje root.
NĂ« telnetd nga paketa GNU InetUtils, dobĂ«sia u eliminua duke ndaluar variablat e rrezikshme tĂ« ambientit pĂ«rmes filtrimit sipas maskave âLD_â, âLIBPATHâ, âENVâ, âIFSâ dhe â_RLD_â. MegjithatĂ«, variabla ambienti âCREDENTIALS_DIRECTORYâ ishte e papenguar, e pĂ«rpunuar gjatĂ« nisjes sĂ« /usr/bin/login. Me kĂ«tĂ« variablĂ« ambienti, pĂ«rdoruesi mund tĂ« ndryshojĂ« katalogun e konfigurimeve tĂ« kredencialeve dhe tĂ« vendosĂ« nĂ« katalogun e ri skedarin login.noauth me vlerĂ«n âyesâ, e cila aktivizon hyrjen pa fjalĂ«kalim (analog me kalimin e flagut â-fâ pĂ«r procesin login). Konfigurimi zbaton pĂ«r tĂ« gjithĂ« pĂ«rdoruesit, duke pĂ«rfshirĂ« root.
Sulmi pĂ«rfshin krijimin e njĂ« nĂ«nkatalogu nga njĂ« pĂ«rdorues i pa privilegjuar nĂ« katalogun e tij tĂ« shtĂ«pisĂ«, ngarkimin e skedarit login.noauth nĂ« tĂ« dhe pĂ«rpjekjen pĂ«r t'u kyçur duke vendosur variablĂ«n ambienti âCREDENTIALS_DIRECTORY= katalogu i krijuarâ dhe duke kaluar variablĂ«n ambienti âUSER=rootâ (nĂ« telnet ekziston njĂ« mod i automatik i lidhjes, ku emri i pĂ«rdoruesit merret jo nga treguesi i komandĂ«s, por kalon pĂ«rmes variablĂ«s ambienti USER). shembulli i eksploitit.
Nuk është zbuluar një tjetër mënyrë për të marrë akses root përmes telnetd, e lidhur me manipulimin e variablave të mjedisit OUTPUT_CHARSET dhe LANGUAGE, të përpunuara nga biblioteka GNU gettext, dhe variablit të mjedisit GCONV_PATH që përdoret në glibc. Duke vendosur variablat e mjedisit OUTPUT_CHARSET dhe LANGUAGE, sulmuesi mund të aktivizojë në gettext funksionalitetin e konvertimit të kodimeve të karaktereve, që shkakton thirrjen e funksionit iconv_open(). Në anën tjetër, gjatë ekzekutimit të funksionit iconv_open() gjatë ngarkimit të skedarit të konfigurimit gconv-modules, rruga llogaritet duke konsideruar variablën e mjedisit GCONV_PATH. Duke e zëvendësuar skedarin gconv-modules, mund të organizohet ngarkimi i bibliotekës së ndarë të personalizuar gjatë shfaqjes së vargut të lokalizuar nga procesi login.
ID-të CVE për këtë vulnerabilitete ende nuk janë caktuar. Si një metodë mbrojtjeje po shqyrtohet përdorimi i një liste të bardhë të vlerave të pranueshme ("TERM", "DISPLAY", "USER", "LOGNAME" dhe "POSIXLY_CORRECT"), duke bllokuar të gjithë variablat e tjerë të mjedisit, siç është realizuar me variablat e mjedisit në OpenSSH. Vulnerabilitetet janë konfirmuar në paketën GNU InetUtils, implementimi serverë telnetd që ofrohet në Debian, Ubuntu dhe distribuime të tjera të derivuara. Rregullimet për GNU InetUtils ende nuk janë në dispozicion. Në Rocky Linux 9 ofrohet një telnetd i modifikuar që nuk ka vulnerabilitete, në të cilin vendosja e filtrimit të variablave të rrezikshëm të mjedisit është zëvendësuar me një kontroll të listës së bardhë. Filtrimi sipas listës së bardhë është gjithashtu i realizuar në telnetd nga FreeBSD. Në OpenBSD, telnetd është përjashtuar nga sistemi në vitin 2005.
Burimi: opennet.ru
