← back
CVE-2023-39780highunder attackCWE-78

CVE-2023-39780

63Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA.

ssvc Actcvss 8.8epss 40%
from disclosure to weapon
Published on NVDSep 11
CISA KEV+630d
exploitation probability
40%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
Action required by CISAfederal deadline: 2025-06-23

Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

Summary

Falha de OS command injection autenticada nos roteadores ASUS RT-AX55 rodando o firmware 3.0.0.4.386.51598, explorável via parâmetro qos_bw_rulelist no endpoint /start_apply.htm. Um usuário autenticado no painel administrativo consegue executar comandos como root no dispositivo abusando do recurso de QoS/bandwidth limiter. Está no catálogo KEV da CISA, ou seja, há exploração confirmada em ambiente real, o que eleva a prioridade mesmo sendo uma falha pós-autenticação.

Technical detail

A vulnerabilidade é uma injeção de comando de SO (CWE-78/CWE-77) no binário sbin/rc do firmware. Quando o parâmetro action_script da requisição HTTP contém a string "restart_qos", a função identificada como FUN_0001e168 desvia a execução para FUN_0006fbcc. Se as variáveis NVRAM qos_enable=1 e qos_type=2 estiverem definidas (ou seja, o QoS por largura de banda — EZQoS — está ativo), FUN_0006fbcc chama FUN_0006cc04.

FUN_0006cc04 abre um script shell temporário em /tmp/qos, lê o valor NVRAM qos_bw_rulelist e o divide em cinco subcampos usando ">" como delimitador. O terceiro subcampo (variável local_22c) é escrito literalmente dentro do script /tmp/qos sem qualquer sanitização de metacaracteres de shell. Em seguida, a função _eval executa a rotina "start" desse script, correndo com os privilégios do processo rc — tipicamente root em firmware embarcado.

O atacante controla integralmente o conteúdo do terceiro campo de qos_bw_rulelist, que normalmente armazenaria um intervalo de endereços MAC de uma regra de limitação de banda. Como esse valor é gravado sem escaping em um script interpretado por shell, backticks, ponto-e-vírgula, pipe e substituição de comando são interpretados normalmente, permitindo execução arbitrária.

O mesmo lote de firmware e a mesma pesquisa expuseram outros pontos de injeção semelhantes no binário rc (por exemplo, via NVRAM oauth_google_auth_code e wan0_ipaddr, disparados por outros valores de action_script), o que reforça que o problema é estrutural — o binário rc grava múltiplos campos controlados por HTTP/NVRAM em scripts shell sem filtrar caracteres especiais. Esses outros pontos correspondem às CVEs irmãs citadas na descrição oficial (CVE-2023-41345/41346/41347/41348), não a este CVE especificamente.

How it’s exploited

O vetor é uma requisição POST autenticada para /start_apply.htm no endereço de administração do roteador (por padrão a interface web, tipicamente acessível na LAN). Os pré-requisitos reais são: sessão autenticada válida no painel (cookie de sessão + token CSRF asus_token vigente, obtido em login prévio), action_mode=apply, action_script contendo "restart_qos", e as flags NVRAM qos_enable=1 e qos_type=2 — isto é, o recurso EZQoS de limitação de banda precisa estar habilitado no roteador. O payload malicioso é inserido no terceiro campo de qos_bw_rulelist, delimitado por ">", usando substituição de comando via backtick.

A complexidade de exploração é baixa (AC:L) uma vez satisfeitas essas condições: não há corrida de condição, brute force ou engenharia reversa adicional necessária — o PoC público demonstra o payload funcionando diretamente. O resultado final é execução de comando arbitrário como root, permitindo desde spawn de shell reverso/telnetd em porta arbitrária até persistência via NVRAM, modificação de configuração de DNS/firewall e uso do roteador como ponto de pivô na rede.

O CVSS (PR:L) reflete que basta uma sessão autenticada de baixo privilégio — não é necessário acesso de superadministrador além do login padrão do dispositivo. A superfície real de exposição depende de o painel administrativo estar acessível: por padrão isso é restrito à LAN, mas dispositivos com administração remota habilitada, ou comprometidos previamente por outra falha de autenticação/CSRF, ficam expostos via WAN. A presença desta CVE no catálogo KEV da CISA confirma exploração ativa documentada; a GreyNoise publicou um levantamento sobre uma campanha de backdoor envolvendo roteadores ASUS que referencia esta falha, mas o conteúdo detalhado dessa campanha não foi verificado nas fontes lidas para esta página, então não é reproduzido aqui.

Versions

Affected
ASUS RT-AX55, firmware 3.0.0.4.386.51598 (build especificamente citado na descrição oficial da CVE).

How to protect

A correção definitiva é atualizar o firmware do RT-AX55 para uma versão posterior a 3.0.0.4.386.51598 diretamente no site de suporte da ASUS para o modelo. As fontes analisadas não confirmam o número exato do build corrigido — não afirme uma versão específica sem checar a página oficial de suporte/download do RT-AX55 antes de considerar o ativo remediado.

Se a atualização não for possível de imediato, controles compensatórios reais: desabilitar a administração remota do painel web (deixar a interface acessível somente pela LAN); desativar o recurso EZQoS/limitador de banda (qos_enable) se não estiver em uso, já que ele é pré-requisito direto da rota de exploração descrita; restringir e segmentar o acesso à interface de gerência via VLAN/ACL; trocar credenciais padrão e usar senhas fortes, já que o ataque exige apenas uma sessão autenticada válida.

O que não funciona como mitigação: um WAF convencional não se aplica aqui, pois o alvo é o próprio painel de gerência embarcado no dispositivo, sem proxy reverso interposto na maioria das instalações domésticas. Filtrar manualmente os caracteres de shell no campo qos_bw_rulelist não é possível do lado do usuário — essa sanitização faz parte do binário rc e só é corrigida por atualização de firmware.

How to detect

Em logs de acesso ao painel administrativo, procure requisições POST para /start_apply.htm cujo corpo contenha o parâmetro qos_bw_rulelist com caracteres de shell fora do padrão de uma regra de banda (backtick, ponto-e-vírgula, pipe, $, quebra de linha) combinado com action_script contendo "restart_qos" e qos_enable=1/qos_type=2. Também vale monitorar o surgimento de processos telnetd/sshd inesperados no dispositivo ou listeners em portas não documentadas, e alterações em scripts temporários como /tmp/qos.

Roteadores domésticos tipicamente não geram logs detalhados de payload HTTP por padrão, e a maioria dos ambientes não tem captura de tráfego da interface de administração — nesses casos não há sinal confiável disponível além de indicadores pós-comprometimento (processos anômalos, configuração NVRAM alterada, tráfego de saída não esperado), o que é uma limitação real de detecção nesta classe de dispositivo.

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.
On ASUS RT-AX55 3.0.0.4.386.51598 devices, authenticated attackers can perform OS command injection via the /start_apply.htm qos_bw_rulelist parameter. NOTE: for the similar "token-generated module" issue, see CVE-2023-41345; for the similar "token-refresh module" issue, see CVE-2023-41346; for the similar "check token module" issue, see CVE-2023-41347; and for the similar "code-authentication module" issue, see CVE-2023-41348.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected products
ASUS · RT-AX55