CVE-2023-1389
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply updates per vendor instructions.
Resumo
Falha de command injection não autenticada na interface de administração web do TP-Link Archer AX21 (AX1800), que permite execução de comandos como root através do parâmetro country de um endpoint de configuração de localidade. O CVSS de 8.8 pressupõe acesso à rede adjacente (AV:A) — ou seja, por padrão o atacante precisa estar na LAN ou ter acesso à interface de gerência, não é explorável direto da internet a menos que combinada com outra falha que exponha a interface via WAN. Está no catálogo KEV da CISA e foi incorporada a variantes do botnet Mirai.
Detalhamento técnico
A vulnerabilidade (CWE-77, command injection) está no callback de escrita ('write') do formulário 'country', acessado em /cgi-bin/luci/;stok=/locale?form=country. O parâmetro country enviado nessa operação é passado sem sanitização para uma chamada popen() no lado do dispositivo, que executa com privilégios de root.
O detalhe técnico relevante — e frequentemente omitido nos resumos — é que a execução não é imediata. O payload injetado no parâmetro country é apenas armazenado na primeira requisição (operation=write); a execução via popen() só ocorre quando esse valor é processado numa chamada subsequente ao mesmo endpoint. Isso exige duas requisições HTTP consecutivas para completar a exploração, não uma única.
O atacante controla integralmente o conteúdo do parâmetro country, o que permite injetar substituição de comando shell (por exemplo, sintaxe $(...)) que será interpretada pelo shell invocado via popen(). Como o processo roda como root, qualquer comando injetado herda esse privilégio, dando controle total do sistema operacional subjacente do roteador.
Como é explorada
O vetor de exploração é uma sequência de duas requisições POST para o endpoint /cgi-bin/luci/;stok=/locale?form=country, sem necessidade de autenticação — o token 'stok' vazio nesse caminho específico ('/locale') não exige sessão válida. A primeira requisição define o valor malicioso no parâmetro country; a segunda dispara a execução via popen(). Isso foi demonstrado publicamente com um PoC trivial que grava a saída do comando id em /tmp/out, confirmando execução como root.
O pré-requisito real que a manchete de CVSS 8.8 esconde: o vetor é AV:A (rede adjacente), ou seja, o atacante precisa ter acesso à rede local do roteador ou à interface de gerência exposta — não é, por si só, explorável remotamente pela internet. Isso muda drasticamente quando combinada com CVE-2023-27359 (ZDI-23-452): pesquisadores da ZDI documentaram que a combinação das duas falhas permite disparar o command injection através da interface WAN, sem exigir posição na LAN, o que eleva o risco de exposição direta à internet.
Há exploração ativa confirmada: a vulnerabilidade foi incorporada a variantes do botnet Mirai (conforme blog da Zero Day Initiative de abril de 2023), o que motivou sua inclusão no catálogo KEV da CISA com prazo de correção de 22 de maio de 2023. Existem template Nuclei e PoC pública, o que reduz a barreira de exploração automatizada em massa para dispositivos com a interface de gerência exposta.
Versões
Como se proteger
A correção definitiva é atualizar o firmware do Archer AX21 (AX1800) para a versão 1.1.4 Build 20230219 ou posterior, disponível na página de firmware do fabricante. O TP-Link corrigiu removendo o callback vulnerável — não é uma sanitização parcial, é remoção da função afetada.
Se a atualização não for possível de imediato, o paliativo real é impedir acesso à interface de administração web: desabilitar gerenciamento remoto/WAN (se estiver habilitado, é a condição que, combinada com CVE-2023-27359, permite exploração direta da internet) e restringir acesso à interface de gerência apenas à LAN confiável, idealmente segmentada de outros dispositivos IoT. Isso reduz a superfície mas não elimina o risco para qualquer host que tenha acesso à LAN do roteador.
Não existe mitigação por configuração de firewall no próprio roteador que neutralize a falha em si, já que o vetor é a própria interface de gerência do dispositivo — não há como filtrar seletivamente o parâmetro country sem alterar o firmware.
Como detectar
Dispositivos SOHO como o Archer AX21 tipicamente não mantêm logs de acesso web acessíveis ou centralizados, o que limita a detecção retroativa em ambientes domésticos. Onde há visibilidade de tráfego (por exemplo, monitoramento de rede voltado à LAN do dispositivo ou logs de proxy/gateway), o sinal a procurar é requisições POST repetidas para /cgi-bin/luci/;stok=/locale?form=country com o parâmetro country contendo metacaracteres de shell (cifrão, parênteses, ponto e vírgula, crase, pipe) e o padrão de duas requisições consecutivas idênticas ou correlacionadas ao mesmo endpoint em curto intervalo, característico do PoC público e das varreduras automatizadas de botnets como Mirai.