← voltar
CVE-2024-3273highsob ataqueCWE-77

D-Link DNS-320L/DNS-325/DNS-327L/DNS-340L HTTP GET Request nas_sharing.cgi command injection

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 7.3epss 100%
da publicação à arma3 dias
Publicada no NVD4 de abr.
1ª PoC+3d
CISA KEV+7d
probabilidade de exploração
100%top 1% das CVEs
exploração observada
simCISA + VulnCheck
18 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2024-05-02

This vulnerability affects legacy D-Link products. All associated hardware revisions have reached their end-of-life (EOL) or end-of-service (EOS) life cycle and should be retired and replaced per vendor instructions.

Resumo

Falha de command injection no CGI nas_sharing.cgi de NAS D-Link legados (DNS-320L, DNS-325, DNS-327L, DNS-340L), explorável remotamente sem autenticação real graças a uma falha de lógica companheira (CVE-2024-3272) que permite logar como usuário de sistema 'messagebus' com senha vazia. É crítica na prática, não só no papel: está no catálogo KEV da CISA com exploração confirmada em massa por botnets, e o fornecedor não vai corrigir porque os produtos são EOL — a única mitigação real é desligar o dispositivo.

Detalhamento técnico

O endpoint /cgi-bin/nas_sharing.cgi aceita um parâmetro 'system' cujo conteúdo (decodificado de base64) é passado para uma chamada de shell no backend, sem sanitização — CWE-77, command injection clássica. O atacante controla integralmente o comando executado, limitado apenas pelo que cabe em base64 dentro do parâmetro.

O acesso a essa função exige autenticação (user/passwd) no fluxo normal do CGI, mas a CVE-2024-3272, tratada como companheira, expõe uma falha de lógica: o dispositivo valida corretamente que o usuário 'messagebus' existe e que a senha fornecida corresponde ao que está cadastrado, mas nunca verifica se esse usuário deveria conseguir autenticar via essa interface. 'messagebus' é uma conta de sistema Linux padrão (como avahi, syslog, nobody), criada sem senha e sem propósito de login interativo — não é um backdoor com credencial fixa plantada pelo fornecedor, e sim uma omissão de controle de acesso sobre uma conta de serviço. Como a senha vazia é 'correta' para essa conta, a checagem de autenticação passa.

Com essa passagem, o atacante monta uma requisição HTTP GET usando user=messagebus, passwd= vazio, e um parâmetro cmd que seleciona um código de operação (relatado como cmd=15) que roteia para a função vulnerável, entregando o comando a executar codificado em base64 no parâmetro system. O resultado é execução de comando arbitrário no contexto do processo do CGI, tipicamente com privilégios suficientes para instalar malware persistente no NAS.

Como é explorada

O vetor é HTTP simples: uma única requisição GET não autenticada de fato (usa a conta de sistema sem senha), sem necessidade de acesso prévio, credenciais reais, ou configuração não padrão — qualquer DNS-320L/325/327L/340L exposto à internet com a interface de gerenciamento acessível é alvo direto. A complexidade de exploração é baixa: não há CSRF token, não há verificação adicional, e o PoC público (netsecfish) demonstra o payload completo.

Exploração ativa está confirmada e documentada pela GreyNoise: sensores capturaram tentativas em massa entregando scripts shell genéricos de download-e-execução que buscam binários de malware para múltiplas arquiteturas de CPU (padrão típico de operadores de botnet tipo Mirai), com uma amostra (skid.x86) recuperada e submetida ao VirusTotal. A CISA adicionou a CVE ao KEV em 11/04/2024 com prazo de mitigação de 02/05/2024, mas como o fornecedor não vai corrigir, a 'ação' recomendada é aposentar o equipamento, não aplicar patch.

O número de dispositivos vulneráveis expostos foi inicialmente estimado em ~92.000 pelo pesquisador que publicou o PoC; análise posterior da Censys revisou essa contagem para algo em torno de 5.500 dispositivos com a interface exposta publicamente — a diferença importa para avaliar exposição real na internet, mas não reduz a gravidade para quem ainda opera o equipamento.

Versões

Afetadas
D-Link DNS-320L, DNS-325, DNS-327L e DNS-340L, todas as revisões de hardware, até a versão 20240403 conforme a descrição oficial; pesquisa do descobridor (netsecfish) lista especificamente DNS-320L versões 1.11, 1.03.0904.2013 e 1.01.0702.2013; DNS-325 versão 1.01; DNS-327L versões 1.09 e 1.00.0409.2013; DNS-340L versão 1.08. Todos esses modelos e revisões estão em End of Service Life segundo o SAP10383 do fornecedor.
Corrigidas em
Nenhuma. O fornecedor confirmou que os produtos são EOL/EOS e não haverá firmware corrigido; a recomendação é retirar e substituir o equipamento.

Como se proteger

Não existe patch e não vai existir: o fornecedor confirmou que todos os modelos afetados (e toda a linha de NAS legados listada no SAP10383) atingiram End of Service Life e não recebem mais atualizações de firmware ou segurança. A recomendação oficial e a única mitigação efetiva é retirar o equipamento de operação e substituí-lo.

Como controle compensatório temporário, se o dispositivo precisar continuar operando por necessidade operacional: remover completamente a exposição da interface de gerenciamento e do CGI à internet (sem NAT/port-forward, sem UPnP automático), restringir acesso à rede local via firewall/segmentação, e desabilitar qualquer funcionalidade de acesso remoto embutida no NAS. Isso reduz a superfície de ataque mas não corrige a falha de lógica de autenticação nem a injeção — o dispositivo continua vulnerável a qualquer atacante com acesso à rede onde ele está.

Trocar a senha do dispositivo ou desabilitar contas de usuário administrativas não mitiga nada aqui, porque a falha explora uma conta de sistema interna (messagebus) que não é gerenciada pela interface de usuários do produto — esse é o mito a descartar. Atualizar para 'a última versão disponível' também não resolve, já que não há versão corrigida para nenhum dos modelos afetados.

Como detectar

Em logs de acesso do NAS ou de proxy/WAF na frente dele, procurar requisições GET a /cgi-bin/nas_sharing.cgi contendo user=messagebus, passwd= vazio, e um parâmetro system com conteúdo codificado em base64 — esse padrão de parâmetros é a assinatura do exploit público. Em nível de rede/EDR no perímetro, sinais de infecção pós-exploração incluem o dispositivo iniciando conexões de saída para baixar scripts shell que tentam executar binários para múltiplas arquiteturas de CPU sequencialmente (padrão comum de botnets tipo Mirai) e tráfego HTTP de saída para servidores de distribuição de malware.

Como o mecanismo de autenticação abusado é uma conta de sistema legítima com senha vazia por design, não há um log de 'falha de autenticação' que sirva de alerta — a requisição aparece como logon válido do ponto de vista do CGI, o que torna a assinatura no payload (system= com base64, cmd=15) o indicador mais confiável disponível.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
** UNSUPPORTED WHEN ASSIGNED ** A vulnerability, which was classified as critical, was found in D-Link DNS-320L, DNS-325, DNS-327L and DNS-340L up to 20240403. Affected is an unknown function of the file /cgi-bin/nas_sharing.cgi of the component HTTP GET Request Handler. The manipulation of the argument system leads to command injection. It is possible to launch the attack remotely. The exploit has been disclosed to the public and may be used. The identifier of this vulnerability is VDB-259284. NOTE: This vulnerability only affects products that are no longer supported by the maintainer. NOTE: Vendor was contacted early and confirmed immediately that the product is end-of-life. It should be retired and replaced.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.