Bypass de Autenticação PAP de 27 Anos no OpenBSD
Técnicas e Métodos de Ataque2026-06-25, 07:04
Uma publicação da Argus Systems revela que um bug de comparação existia no subsistema
sppp(4) do OpenBSD desde 1999. A falha em bcmp permitia que a autenticação PAP fosse bem-sucedida quando tanto o nome de usuário quanto as senhas tinham comprimento zero. Com name_len=0 e passwd_len=0, as chamadas para bcmp() retornavam 0, permitindo que a autenticação fosse bem-sucedida sem quaisquer credenciais.O bug também permitia leituras de memória do kernel: se
name_len excedesse o tamanho real de sp->hisauth.name, bcmp poderia ler além dos limites de memória do objeto.🥷🏻 Um atacante no mesmo segmento de rede L2 (domínio de broadcast) poderia iniciar um servidor PPPoE falso, completar todo o handshake e redirecionar o tráfego da vítima através de um nó controlado.
⚠️ O problema é rastreado como CVE‑2026‑55706 e afeta todas as versões do OpenBSD de 1 de julho de 1999 a 14 de junho de 2026. A exploração não requer privilégios.
O patch adiciona verificações rigorosas de comprimento de string, correspondendo ao tratamento existente do CHAP, e corrige ambos os problemas:
c
if (name_len != strlen(sp->hisauth.name) ||
passwd_len != strlen(sp->hisauth.secret) ||
bcmp(name, sp->hisauth.name, name_len) != 0 ||
bcmp(passwd, sp->hisauth.secret, passwd_len) != 0) {```
📎 Artigo: https://blog.argus-systems.ai/blog/openbsd-pap-27-year-auth-bypass.html
🦠 PoC está anexado à publicação como um arquivo: https://blog.argus-systems.ai/blog/poc-001-pap-bypass.pyVulnerabilidades
Pesquisadores
Fornecedor
Produto