← volver
CVE-2016-10174criticalbajo ataqueCWE-120

CVE-2016-10174

100Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.

ssvc Actcvss 9.8epss 83%
de la publicación al arma0 días
Publicada en NVD30 ene
1ª PoC21 dic
metasploit20 dic
CISA KEV+1880d
probabilidad de explotación
83%top 1% de las CVE
explotación observada
CISA + VulnCheck
4 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2022-04-15

Apply updates per vendor instructions.

Resumen

CVE-2016-10174 é um buffer overflow stack-based no parâmetro hidden_lang_avi do endpoint /apply.cgi?/lang_check.html do roteador NETGEAR WNR2000v5, que faz parte de uma cadeia de três falhas descobertas por Pedro Ribeiro (Agile Information Security) em dezembro de 2016. Isolada, a falha já permite RCE não autenticado; combinada com um bypass de controle de acesso (apply_noauth.cgi) e um gerador de token previsível, vira uma cadeia completa de takeover do dispositivo sem credenciais. Está no catálogo KEV da CISA por exploração confirmada, tem PoC pública e módulo Metasploit — mas o impacto real está concentrado em roteadores domésticos legados, muitos já fora de suporte.

Detalle técnico

O servidor web embarcado do WNR2000 (uhttpd) não implementa apply.cgi como um script CGI de verdade: é uma string mágica que o binário do uhttpd reconhece e roteia internamente para funções administrativas (trocar configuração de WLAN, reiniciar, restaurar padrão de fábrica etc.). Uma dessas rotas, invocada via /apply.cgi?/lang_check.html (ou sua variante não autenticada /apply_noauth.cgi?/lang_check.html), processa o parâmetro hidden_lang_avi copiando seu valor para um buffer de tamanho fixo na pilha sem validar o tamanho da entrada — um overflow clássico de pilha (CWE-119/CWE-121, conforme classificado pela CISA). Como o firmware roda em MIPS embarcado sem as mitigações modernas de userland (ASLR/NX consistentes) típicas de Linux desktop, sobrescrever o buffer permite controlar o fluxo de execução e, em última instância, executar código arbitrário no contexto do processo do servidor web (tipicamente root em firmware de roteador SOHO).

O atacante controla integralmente o conteúdo e, dentro do limite do buffer, o tamanho da string enviada em hidden_lang_avi. Não há sanitização de tipo, comprimento ou caracteres nesse parâmetro antes da cópia — a falha é de implementação C de baixo nível, não de lógica de autorização (essa é uma vulnerabilidade separada, tratada pelo pesquisador na mesma cadeia).

Cómo se explota

A rota apply.cgi normalmente exige autenticação de administrador via HTTP Basic Auth. O pulo do gato descoberto pelo pesquisador é que o mesmo binário do uhttpd também responde a apply_noauth.cgi, que executa as mesmas funções sem exigir credenciais — incluindo lang_check.html, o endpoint vulnerável ao overflow. Algumas dessas funções administrativas são protegidas por um valor de "timestamp" enviado na URL, funcionando como um anti-CSRF token gerado por uma função de PRNG (baseada em random()/srandom() do libc) semeada de forma previsível; o pesquisador demonstrou que esse token pode ser identificado em menos de 1000 tentativas sem conhecimento prévio do dispositivo.

Na prática, a exploração completa e não autenticada encadeia: (1) requisição não autenticada a apply_noauth.cgi para acessar a rota administrativa sem login; (2) previsão/força bruta do timestamp anti-CSRF explorando a debilidade do PRNG; (3) envio do payload de overflow no parâmetro hidden_lang_avi para obter execução de código. Por padrão o gerenciamento remoto (WAN) está desabilitado no WNR2000v5, então a exploração via internet só é possível se o administrador ativou essa opção — quando isso ocorre, o dispositivo fica exposto e pesquisadores encontraram mais de 10.000 unidades com gerenciamento remoto ligado no Shodan no momento da divulgação. Sem gerenciamento remoto, o ataque é restrito à LAN, o que ainda é relevante em cenários de rede comprometida, IoT malicioso na mesma rede, ou ataques CSRF/drive-by via navegador de uma máquina interna. A presença no catálogo KEV da CISA confirma exploração ativa registrada, embora as fontes disponíveis não detalhem quem ou em que campanha.

Versiones

Afectadas
WNR2000v5, todas as versões de firmware anteriores à correção (confirmado em hardware pelo pesquisador). WNR2000v4 e WNR2000v3 são citados como possivelmente afetados pelo mesmo mecanismo, mas isso foi confirmado apenas por análise estática do firmware, não testado em hardware real, segundo o advisory original.
Corregidas en
NETGEAR publicou firmware de produção corrigido para WNR2000v3, WNR2000v4 e WNR2000v5 (links adicionados ao advisory do fornecedor em 26/01/2017); número de versão específico não constava nas fontes consultadas — verificar release notes do modelo no Download Center da NETGEAR.

Cómo protegerse

O fornecedor lançou atualizações de firmware de produção para WNR2000v3, WNR2000v4 e WNR2000v5 (advisory PSV-2016-0255, atualizado em 26/01/2017 com os links de firmware definitivos). As fontes consultadas não trazem o número exato da versão de firmware corrigida — o usuário deve baixar a versão mais recente disponível no Download Center da NETGEAR para o modelo específico e confirmar pelas release notes que ela cobre PSV-2016-0255 / CVE-2016-10174. A NETGEAR afirma que, a partir de dezembro de 2017, todos os modelos listados no advisory já tinham correção disponível.

Como controle compensatório quando a atualização não é possível imediatamente: desabilitar o gerenciamento remoto (WAN) elimina o vetor via internet, mas não protege contra exploração dentro da própria LAN — não é mitigação completa, apenas reduz a superfície. Isolar o roteador de dispositivos não confiáveis na rede interna (segmentação, VLAN de gerenciamento) reduz o risco residual. Trocar a senha padrão de administrador não mitiga esta CVE específica, já que a exploração do buffer overflow via apply_noauth.cgi não depende de autenticação — esse é o mito a descartar aqui: a falha contorna justamente o controle de credenciais.

Cómo detectar

Em logs de servidor web/proxy, procurar requisições a /apply.cgi?/lang_check.html ou /apply_noauth.cgi?/lang_check.html com o parâmetro hidden_lang_avi contendo valor anormalmente longo ou com bytes não imprimíveis — indicativo de tentativa de overflow. Um padrão anterior no mesmo fluxo de ataque é volume elevado de requisições repetidas a endpoints que retornam o parâmetro "timestamp=" (como /lang_check.html ou /PWD_password.htm), sugerindo tentativa de prever o token do PRNG por força bruta, e requisições a /BRS_netgear_success.html, usada no reconhecimento para vazar o número de série do dispositivo. Não há assinatura oficial de IDS/IPS citada nas fontes consultadas; a ausência de log administrativo detalhado nesses roteadores SOHO também limita a capacidade forense pós-incidente.

Investigado y redactado con IA a partir del advisory del fabricante y análisis públicos, con las fuentes citadas. Verifica siempre la versión corregida en el advisory oficial antes de actuar.
The NETGEAR WNR2000v5 router contains a buffer overflow in the hidden_lang_avi parameter when invoking the URL /apply.cgi?/lang_check.html. This buffer overflow can be exploited by an unauthenticated attacker to achieve remote code execution.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Productos afectados
n/a · n/a
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.