No pacote pppd (), que permite executar seu código enviando requisições de autenticação especialmente formatadas para sistemas que utilizam o protocolo PPP (Point-to-Point Protocol) ou PPPoE (PPP over Ethernet). Esses protocolos são comumente usados por provedores para estabelecer conexões via Ethernet ou DSL, e também são utilizados em algumas VPNs (como pptpd e ). Para verificar a vulnerabilidade de seus sistemas em relação ao problema prototipo do exploit.
A vulnerabilidade é causada por um estouro de buffer na implementação do protocolo de autenticação EAP (Extensible Authentication Protocol). Um ataque pode ser realizado antes da autenticação ao enviar um pacote do tipo EAPT_MD5CHAP, que inclui um nome de host muito longo, que não cabe no buffer alocado. Devido a um erro na verificação do tamanho do campo rhostname, o atacante pode sobrescrever dados fora do buffer na pilha e conseguir a execução remota de seu código com privilégios de root. A vulnerabilidade se manifesta tanto no lado do servidor quanto no cliente, ou seja, não apenas o servidor pode ser atacado, mas também o cliente que tenta se conectar a um servidor sob controle do atacante (por exemplo, o invasor pode primeiro comprometer o servidor por meio da vulnerabilidade e depois começar a atacar os clientes que se conectam).
O problema afeta as versões de 2.4.2 a 2.4.8 incluídos e foi corrigido na versão . A vulnerabilidade também a pilha , mas na configuração padrão do lwIP o suporte a EAP não está incluído.
O status da correção do problema nas distribuições pode ser consultado nas páginas: , , , , , , , . No RHEL, OpenWRT e SUSE, o pacote pppd é compilado com a proteção 'Stack Smashing Protection' (modo '-fstack-protector' no gcc), o que limita a exploração por falha. Além das distribuições, a vulnerabilidade também é confirmada em alguns produtos (CallManager), e Synology (DiskStation Manager, VisualStation VS960HD e Router Manager), que utilizam código pppd ou lwIP.
Fonte: opennet.ru
