
Aviso de segurança para a vulnerabilidade de estouro de buffer no TOTOLINK a720r
Fabricante: TOTOLINK
Site do fabricante: TOTOLINK
Modelo: A720R
Versão do firmware: V4.1.5cu.630_B20250509
Endereço de download do firmware: TOTOLINK
Pontuação Base CVSS v4.0: 8.7 (Alta)
Vetor: CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Existe um estouro de buffer baseado em pilha no binário de firmware cstecgi.cgi que permite a um administrador autenticado sequestrar o fluxo de controle do processo e executar caminhos de código existentes dentro do binário. A vulnerabilidade pode ser acionada enviando uma solicitação manipulada ao manipulador setMacFilterRules contendo um valor excessivamente longo de um parâmetro desc, que é copiado para um buffer de pilha de tamanho fixo via strcpy() sem qualquer verificação de limites, sobrescrevendo o endereço de retorno salvo.

O código vulnerável está localizado dentro do binário cstecgi.cgi, onde o valor fornecido de desc é copiado para um buffer de pilha sem validação de comprimento, permitindo que o endereço de retorno salvo seja sobrescrito e o fluxo de controle do programa seja redirecionado. Como o binário é compilado sem canários de pilha e sem PIE, o estouro passa despercebido e a execução pode ser redirecionada de forma confiável para código residente em endereços fixos dentro do binário.


Ao sobrescrever o endereço de retorno salvo, o fluxo de controle foi redirecionado para funções existentes dentro do binário. Isso foi demonstrado invocando uma chamada sleep(2) (confirmando o controle confiável do ponteiro de instrução através de um atraso mensurável na resposta do dispositivo), a rotina de reinicialização do sistema, a função de logout da sessão e a rotina de limpeza de logs.


O fluxo de controle foi ainda redirecionado para a rotina responsável por iniciar o serviço Telnet, habilitando o Telnet no dispositivo.

Como resultado, um atacante autenticado com acesso de rede ao dispositivo alvo pode sequestrar o fluxo de execução do processo cstecgi.cgi e executar caminhos de código arbitrários dentro do binário, comprometendo a confidencialidade, integridade e disponibilidade do dispositivo.