Descubriuse unha vulnerabilidade no servidor telnetd do conxunto GNU InetUtils. Esta vulnerabilidade permite a conexión como calquera usuario, incluído root, sen verificación de contrasinal. Aínda non se asignou un identificador CVE. A vulnerabilidade está presente desde a versión 1.9.3 (2015) de InetUtils e segue sen parchear na versión actual, 2.7.0. Hai unha corrección dispoñible nos parches (1, 2).
O problema débese a que, para comprobar o contrasinal, o proceso telnetd chama á utilidade "/usr/bin/login", pasando como argumento o nome de usuario especificado polo cliente ao conectarse a servidorA utilidade "login" admite a opción "-f", que permite iniciar sesión sen autenticación (esta opción está pensada para usarse cando o usuario xa foi autenticado). Polo tanto, substituíndo a opción "-f" no nome de usuario, podes conectarte sen verificación de contrasinal.
Cunha conexión normal, non se pode usar un nome de usuario como "-f root", pero Telnet ten un modo de conexión automática activado pola opción "-a". Neste modo, o nome de usuario non se toma da liña de comandos, senón que se pasa a través da variable de ambiente USER. Cando se chamaba a utilidade de inicio de sesión, o valor desta variable de ambiente substituíase sen comprobacións adicionais e sen caracteres especiais de escape. Polo tanto, para conectar como usuario root, simplemente configure a variable de ambiente USER en "-f root" e conéctese ao servidor Telnet usando a opción "-a": $ USER='-f root' telnet -a nome_do_servidor
A modificación que introduciu a vulnerabilidade engadiuse ao código telnetd en marzo de 2015 e solucionou un problema que impedía que se determinase o nome de usuario no modo de inicio de sesión automático sen autenticación Kerberos. Como solución, engadiuse a compatibilidade para pasar o nome de usuario para o modo de inicio de sesión automático a través dunha variable de ambiente, pero esqueceuse unha comprobación de validación para o nome de usuario desde a variable de ambiente.
Fonte: opennet.ru
