Rocco Calvi, um pesquisador de segurança, descobriu um sério defeito no roteador TP-Link AX1800 WiFi 6 (Archer AX21/AX20) que permite que invasores de rede local executem código remotamente como usuário root.
CVE-2023-28760 é uma vulnerabilidade de alta gravidade (CVSS 7.5) no serviço MiniDLNA do recurso de compartilhamento de mídia do roteador. Conforme descrito nos registros CVE, “os dispositivos TP-Link AX1800 WiFi 6 Router (Archer AX21) permitem que invasores não autenticados (na LAN) executem código arbitrário como root por meio do campo db_dir para minidlnad. O invasor obtém a capacidade de modificar files.db e isso pode ser usado para alcançar um estouro de buffer baseado em pilha em minidlna-1.1.2/upnpsoap.c.”
A falha afeta dispositivos onde os usuários conectaram uma unidade USB para compartilhamento local de arquivos, comumente acessada por meio de 192.168.0.1, uma configuração usada por muitas casas para streaming e armazenamento.
A descoberta gira em torno de uma fraqueza no . Banco de dados TPDLNA/files.db criado quando o compartilhamento de mídia está habilitado no roteador. De acordo com Calvi, “Por padrão, o Samba para Windows e o FTP local estão ativados e o compartilhamento de mídia está ativado no dispositivo, o que significa que os serviços MiniDLNA, ProFTPd e Samba serão iniciados automaticamente para o compartilhamento USB”.
Os invasores na mesma LAN podem manipular o banco de dados via SMB ou FTP devido a uma falha de design. Esta vulnerabilidade vem de imverificação de limites adequados no processamento de resultados de consulta SQL do MiniDLNA.
“Durante nossa análise de código estático do arquivo minidlna-1.1.2/upnpsoap.c, identificamos uma vulnerabilidade que resultou de uma verificação inadequada de limites… o fornecedor presumiu que a vulnerabilidade não era acessível por um invasor e, portanto, não a corrigiu.”
Esse descuido se mostrou caro. O arquivo de banco de dados (files.db) pode ser modificado diretamente por qualquer usuário com acesso à rede para a unidade USB compartilhada porque o arquivo de configuração MiniDLNA /tmp/minidlna.conf expõe o caminho do banco de dados:
db_dir=/mnt/sda1/. TPDLNA
Ao alterar os dados no files.db, os invasores podem causar um estouro de buffer, permitindo que eles executem código no roteador.
A exploração ocorre quando a função de processamento DLNA copia campos de metadados para um buffer de tamanho fixo. Se um dlna_pn criado (nome do perfil DLNA) exceder esse tamanho, ele substituirá a memória da pilha.
Como Calvi explica, “Se a variável dlna_pn contiver mais caracteres do que o buffer pode conter, isso causará um estouro de buffer baseado em pilha, permitindo que um invasor substitua a pilha e potencialmente execute código arbitrário no roteador”.
O invasor pode encadear esse estouro na ROP (programação orientada a retorno) para ignorar mitigações de segurança, como ASLR (Address Space Layout Randomization) e NX (No-eXecute).
“Para superar as mitigações de exploração do ASLR e do bit NX, bem como a restrição de byte nulo imposta pelo sprintf, encontramos um gadget que nos permitiu redirecionar a execução para uma única instrução, apesar da limitação de byte nulo.”
A análise destaca o uso de uma técnica de “um gadget” que redireciona o fluxo de execução para a função system() dentro do firmware do roteador, concedendo efetivamente acesso de linha de comando ao invasor como root:
00015ed4 06 0d 8d e2 adicionar r0,sp,#0x180
00015ed8 cb f6 ff eb bl ::sistema int system(char * __command)
Uma vez bem-sucedido, o invasor obtém controle total sobre o roteador, permitindo a execução de comandos, exfiltração de dados ou movimento lateral dentro da rede doméstica.
A equipe de pesquisa desenvolver uma exploração de prova de conceito para mostrar a vulnerabilidade na competição Pwn2Own, onde as explorações são demonstradas de forma responsável. Eles obtiveram acesso remoto ao roteador com sucesso.
A TP-Link corrigiu um problema relatado na versão de firmware Archer AX20(EU)_V3_1.1.4 Build 20230219. Os usuários dos roteadores afetados devem atualizar imediatamente. Encontre o firmware e as instruções mais recentes aqui.
