Na serveri telnetd z balíka GNU InetUtils bola zistená zraniteľnosť, ktorá umožňuje pripojiť sa ako akýkoľvek používateľ, vrátane používateľa root, bez overenia hesla. Identifikátor CVE zatiaľ nebol priradený. Zraniteľnosť sa prejavuje od verzie InetUtils 1.9.3 (2015) a zostáva neopravena v aktuálnej verzii 2.7.0. Oprava je k dispozícii vo forme záplat (1, 2).
Problém je spôsobený tým, že na overenie hesla proces telnetd volá utilitu „/usr/bin/login“, pričom ako argument predáva meno používateľa zadané klientom pri pripojení k serveru. Utility „login“ podporuje možnosť „-f“, ktorá umožňuje prihlásiť sa bez vykonania autentifikácie (predpokladá sa, že táto možnosť sa používa, keď už používateľ prešiel overením). Ak sa teda podarí dosadiť možnosť „-f“ do mena používateľa, je možné sa pripojiť bez overenia hesla.
Pri bežnom pripojení nie je možné použiť meno používateľa vo forme „-f root“, ale v telnet je režim automatického pripojenia, ktorý je aktivovaný možnosťou „-a“. V tomto režime sa meno používateľa neberie z príkazového riadku, ale prenáša sa prostredníctvom premennej prostredia USER. Pri volaní utility login bola hodnota tejto premennej prostredia dosadená bez dodatočného overenia a bez escapovania špeciálnych znakov. Takže na pripojenie ako používateľ root stačí nastaviť v premennej prostredia USER hodnotu „-f root“ a pripojiť sa na telnet server s možnosťou „-a“: $ USER=’-f root’ telnet -a meno_servera
Zmeny, ktoré viedli k zraniteľnosti, boli pridané do kódu telnetd v marci 2015 a boli spojené s odstránením problému, ktorý neumožňoval určiť meno používateľa v režime autologin bez autentifikácie v Kerberos. Ako riešenie bola pridaná podpora prenosu mena používateľa pre režim autologin cez premennú prostredia, ale na overenie správnosti mena používateľa z premennej prostredia sa zabudlo.
Zdroj: opennet.ru
