Reading Time: 2 minutes

O investigador de segurança do Google, Matthew Garrett, divulgou uma vulnerabilidade de execução de código arbitrário (ACE) de dia zero que afeta os routers TP-Link SR20.

O investigador de segurança do Google, Matthew Garrett, descobriu uma vulnerabilidade de execução de código arbitrário (ACE) de dia zero nos routers TP-Link SR20.

Adversários podem tirar partido de esta vulnerabilidade ACE caso estejam na mesma rede do dispositivo afetado.

Garret comunicou a falha da TP-Link, mas depois de 90 dias ele decidiu divulgar publicamente o problema porque o vendedor não deu qualquer tipo de feedback.

“TP-Link routers frequently run a process called “tddp” (TP-Link Device Debug Protocol) as root. It’s had multiple vulnerabilities in the past and the protocol is fairly well documented. Version 1 has no auth, version 2 requires the admin password.” wrote Garrett on Twitter.

 

O especialista explicou que o protocolo TDDP (TP-Link Device Debug Protocol) permite executar dois tipos de comandos no dispositivo: tipo 1, que não requer autenticação, e tipo 2, que exige credenciais de administrador.

“The SR20 still exposes some version 1 commands, one of which (command 0x1f, request 0x01) appears to be for some sort of configuration validation,” he said. “You send it a filename, a semicolon and then an argument.”

 

O router vulnerável expõe vários comandos do tipo 1, incluindo 0x1f, request 0x01, que parece ser para algum tipo de validação de configuração. Esses comandos podem permitir que os malfeitores enviem um comando com um nome de um ficheiro, um ponto-e-vírgula e um argumento para iniciar a exploração da vulnerabilidade.

Uma vez que o router recebe o comando, ele responde à máquina solicitante através do protocolo TFTP, solicita o nome do ficheiro, importa-o para um interpretador Lua, executa como root e envia o argumento para a função config_test () dentro do ficheiro importado.

Garret apontou que o método Lua os.execute () passa um comando para ser executado por um shell do sistema operativo. O interpretador Lua é executado como root, dando a um atacante não autenticado a oportunidade de obter uma execução de comandos arbitrários como root.

A prova de conceito (PoC) para o problema pode ser encontrada neste link do pastebin.