V serveru telnetd ze sady GNU InetUtils byla objevena zranitelnost. Tato zranitelnost umožňuje připojení libovolnému uživateli, včetně root, bez ověření hesla. Identifikátor CVE dosud nebyl přiřazen. Zranitelnost je přítomna od verze InetUtils 1.9.3 (2015) a v aktuální verzi 2.7.0 zůstává neopravená. Oprava je k dispozici v záplatách (1, 2).
Problém je způsoben tím, že pro kontrolu hesla volá proces telnetd utilitu „/usr/bin/login“, která jako argument předává uživatelské jméno zadané klientem při připojení k serverNástroj „login“ podporuje volbu „-f“, která umožňuje přihlášení bez ověření (tato volba je určena pro použití v případě, že uživatel již byl ověřen). Dosazením volby „-f“ do uživatelského jména se tedy můžete připojit bez ověření hesla.
Při normálním připojení nelze použít uživatelské jméno jako „-f root“, ale Telnet má automatický režim připojení aktivovaný volbou „-a“. V tomto režimu se uživatelské jméno nepřebírá z příkazového řádku, ale předává se přes proměnnou prostředí USER. Při volání utility pro přihlášení byla hodnota této proměnné prostředí dosazena bez další kontroly a bez escapování speciálních znaků. Chcete-li se tedy připojit jako uživatel root, jednoduše nastavte proměnnou prostředí USER na „-f root“ a připojte se k serveru Telnet pomocí volby „-a“: $ USER='-f root' telnet -a název_serveru
Změna, která zavedla tuto zranitelnost, byla do kódu telnetd přidána v březnu 2015 a řešila problém, který bránil určení uživatelského jména v režimu automatického přihlášení bez ověřování Kerberos. Jako řešení byla přidána podpora pro předávání uživatelského jména pro režim automatického přihlášení prostřednictvím proměnné prostředí, ale na ověření uživatelského jména z proměnné prostředí se zapomnělo.
Zdroj: opennet.ru
