Piştî kifşkirina lawaziyek di dawiya Çile de ku destûrê dida girêdanên root bêyî verastkirina şîfreyê, çend teknîkên zêdekirina îmtiyazê di servera telnetd de ji koma GNU InetUtils hatin kifş kirin, ku ji ber patchek netemam a lawaziyek di sala 1999-an de çêbû (CVE-1999-0073).
Ev lawazî ji ber şiyana telnetd-ê ya şandina guherbarên jîngehê bi rêya vebijarka ENVIRON bo serverê çêdibin. Guherbarên jîngehê yên weha di çarçoveya pêvajoya telnetd-ê de têne danîn û pêvajo kirin û ji pêvajoyên zarokan re têne şandin ku ji hêla wê ve têne destpêkirin, di nav de pêvajoya /bin/login ku bi mafên root ve hatî destpêkirin. Lawaziya CVE-1999-0073 rê da xerîdarê telnet ku guherbara jîngehê LD_LIBRARY_PATH derbas bike, ku, dema ku were danîn, dibe sedema barkirina pirtûkxaneyek hevpar a ku ji hêla bikarhêner ve hatî destnîşankirin dema ku pêvajoya têketinê dest pê dike. Bi saya şiyana barkirina pelan bo pergalek ku piştgiriyê dide girêdanên telnet, êrîşkar dikare pirtûkxaneyek bi taybetî hatî çêkirin bar bike û bibe sedema barkirina wê bi mafên root.
Di telnetd de ji koma GNU InetUtils, qelsiyek bi neçalakkirina guherbarên hawîrdorê yên xeternak bi rêya fîlterkirinê bi karanîna maskeyên "LD_," "LIBPATH," "ENV," "IFS," û "_RLD_" hate çareser kirin. Lêbelê, guherbara hawîrdorê "CREDENTIALS_DIRECTORY", ku di dema destpêkirina /usr/bin/login de hate pêvajo kirin, hate vekirin. Bi karanîna vê guherbara hawîrdorê, bikarhêner dikaribû peldanka ku bawernameyan dihewîne biguherîne û pelek login.noauth bi nirxa "erê" di peldanka nû de bi cîh bike, têketina bê şîfre çalak bike (mîna şandina ala "-f" ji bo pêvajoya têketinê). Ev mîheng ji bo hemî bikarhêneran, tevî root, derbas dibe.
Êrîş ji bikarhênerekî bêmaf pêk tê ku di peldanka xwe ya malê de binpeldankek çêdike, pelê login.noauth lê bar dike, û hewl dide ku bi danîna guhêrbarê jîngehê "CREDENTIALS_DIRECTORY=created directory" û şandina guhêrbarê jîngehê "USER=root" têkeve (Telnet moda girêdana otomatîk heye ku tê de navê bikarhêner ji rêza fermanê nayê girtin, lê bi rêya guhêrbarê jîngehê "USER" tê şandin). Mînakek îstismarê.
Rêbazek din ji bo bidestxistina gihîştina root bi rêya telnetd hate keşifkirin. Ev tê de manîpulekirina guhêrbarên jîngehê yên OUTPUT_CHARSET û LANGUAGE yên ku ji hêla pirtûkxaneya gettext a GNU ve têne pêvajo kirin, û guhêrbarê jîngehê yê GCONV_PATH ku di glibc de tê bikar anîn heye. Bi danîna guhêrbarên jîngehê yên OUTPUT_CHARSET û LANGUAGE, êrîşkar dikare fonksiyona veguherîna kodkirina karakteran di gettext de çalak bike, ku fonksiyona iconv_open() gazî dike. Dema ku fonksiyona iconv_open() tê bicîhanîn dema ku pelê mîhengê gconv-modules tê barkirin, rê bi karanîna guhêrbarê jîngehê yê GCONV_PATH tê hesibandin. Bi danîna pelê gconv-modules, gengaz e ku pirtûkxaneyek hevpar a xwerû were barkirin dema ku pêvajoya têketinê rêzek herêmî derdixe.
Nasnameyên CVE hîn ji bo lawaziyên hatine destnîşankirin nehatine destnîşankirin. Rêbazek pêşniyarkirî ya kêmkirina kêmasiyan ew e ku navnîşek spî ya nirxên qebûlkirî ("TERM," "DISPLAY," "USER," "LOGNAME," û "POSIXLY_CORRECT") were bikar anîn dema ku hemî guherbarên din ên jîngehê têne asteng kirin, mîna ka OpenSSH çawa guherbarên jîngehê birêve dibe. Lawazî di pakêta GNU InetUtils de hatine piştrast kirin, ku hatine bicîh kirin. server telnetd ew e ku ji hêla Debian, Ubuntu, û hilberên wê yên jêderk ve tê peyda kirin. Çareseriyên ji bo GNU InetUtils hîn peyda nînin. Rocky Linux 9 bi telnetd-ek guhertî tê şandin ku ne xeternak e û li şûna fîlterkirina guhêrbarên hawîrdorê yên xeternak, kontrolkirina navnîşa spî bikar tîne. Fîlterkirina navnîşa spî di telnetd de ji FreeBSD jî tê bicîh kirin. Telnetd di sala 2005-an de ji OpenBSD hate rakirin.
Source: opennet.ru
