
CVE-2026-32746 - PoC de Buffer Overflow no LINEMODE SLC do telnetd do GNU InetUtils (RCE pré-autenticação, CVSS 9.8)
Estouro de buffer pré-autenticação no manipulador LINEMODE SLC (Set Local Characters) do telnetd do GNU InetUtils.
CVSS 3.1: 9.8 (Crítico) | CWE: CWE-120, CWE-787
A função add_slc() em telnetd/slc.c anexa 3 bytes por trinca SLC a um buffer fixo de 108 bytes (slcbuf) sem verificação de limites. Um atacante não autenticado pode enviar uma subopção SLC maliciosa com 40+ trincas (códigos de função > 18/NSLC) durante a negociação de opções — antes de qualquer prompt de login — estourando o buffer e corrompendo o ponteiro slcptr e dados adjacentes no BSS.
# Construa o ambiente de laboratório vulnerável
docker compose up -d
# Detecte (não destrutivo)
python3 detect.py 127.0.0.1 2323
# Explore (aciona o estouro, verifica por meio da resposta)
python3 exploit.py 127.0.0.1 2323
# Limpe
docker compose down
A configuração Docker executa um contêiner Debian com inetutils-telnetd 2.4 sob xinetd, exposto na porta 2323. Totalmente isolado — nada toca o seu host.
WILL LINEMODE para acionar a negociação do LINEMODEDO LINEMODE e entra no processamento da subopção SLCadd_slc() enfileira uma resposta "não suportado" (3 bytes) para cada trinca em um buffer de 104 bytesslcptr e dados adjacentes do BSSend_slc() envia tudo de slcbuf até a posição corrompida de slcptr, incluindo memória vazada do BSS na resposta| Arquivo | Descrição |
|---|---|
exploit.py | PoC do estouro com verificação baseada na resposta |
Dockerfile | Laboratório do telnetd vulnerável |
docker-compose.yml | Configuração do laboratório com um comando |
xinetd-telnet.conf | Configuração do serviço xinetd |
detect.py | Script não destrutivo de detecção de versão |
Para uma análise aprofundada de exploração, incluindo restrições de bytes, técnicas de alinhamento e a primitiva def_slcbuf/free() em sistemas de 32 bits, veja o artigo da WatchTowr.
Esta ferramenta é fornecida apenas para testes de segurança autorizados e fins educacionais. Não a utilize contra sistemas que você não possua ou para os quais não tenha permissão explícita para testar. O autor não é responsável pelo uso indevido.
MIT