← back
CVE-2023-1389highunder attackCWE-77

CVE-2023-1389

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 8.8epss 100%
from disclosure to weapon0 days
Published on NVDMar 15
1st PoCApr 26
CISA KEV+47d
exploitation probability
100%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
7 public exploit(s)
Action required by CISAfederal deadline: 2023-05-22

Apply updates per vendor instructions.

Summary

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.

Technical detail

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.

How it’s exploited

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.

Versions

Affected
TP-Link Archer AX21 (AX1800), todas as versões de firmware anteriores a 1.1.4 Build 20230219.
Fixed in
1.1.4 Build 20230219 e versões posteriores.

How to protect

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.

How to detect

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.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
TP-Link Archer AX21 (AX1800) firmware versions before 1.1.4 Build 20230219 contained a command injection vulnerability in the country form of the /cgi-bin/luci;stok=/locale endpoint on the web management interface. Specifically, the country parameter of the write operation was not sanitized before being used in a call to popen(), allowing an unauthenticated attacker to inject commands, which would be run as root, with a simple POST request.
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.