CVE-2021-35395
Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.
Apply updates per vendor instructions.
Resumen
Conjunto de falhas no servidor HTTP de administração (binários 'boa' e 'webs') do Realtek Jungle SDK, usado por dezenas de fabricantes de roteadores e access points embarcados. Combina múltiplos stack buffer overflows e duas injeções de comando de sistema operacional em handlers de formulário da interface web de gerência, permitindo de DoS a execução remota de código como root. O CVSS 9.8 reflete o pior caso (RCE não autenticado), mas a gravidade real em cada dispositivo depende de como o fabricante final customizou e expôs esse SDK — informação que a CVE, por ser sobre um SDK e não um produto específico, não consegue capturar.
Detalle técnico
A vulnerabilidade é na verdade um agregado de oito falhas distintas nos handlers CGI da interface de administração web do Jungle SDK. Cinco são stack buffer overflows (CWE-121/CWE-20 conforme a fonte) causados por cópia insegura (tipicamente strcpy/sprintf sem checagem de tamanho) de parâmetros de formulário HTTP para buffers de tamanho fixo na pilha: formRebootCheck, formWsc e formWlanMultipleAP falham no parâmetro 'submit-url'; formWlSiteSurvey falha no parâmetro 'ifname'; formStaticDHCP falha no parâmetro 'hostname'; e há uma segunda falha em formWsc no parâmetro 'peerPin'. As outras duas são falhas de injeção de comando (CWE-78): formSysCmd executa o conteúdo do parâmetro 'sysCmd' diretamente via chamada de sistema, e formWsc injeta comando através do parâmetro 'peerPin' (o mesmo parâmetro que também sofre overflow, sugerindo parsing duplo/inseguro).
O atacante controla o corpo do POST enviado a esses endpoints CGI expostos pelo daemon boa ou webs. Como esses binários rodam historicamente sem proteções de pilha (sem ASLR, sem stack canary) em muitos SoCs de rede embarcados, mesmo overflows 'simples' tendem a ser exploráveis para controle de fluxo, não apenas travamento — daí a divergência entre a descrição do NVD (RCE completo, CVSS 9.8) e a classificação do catálogo KEV da CISA, que descreve o efeito prático observado como negação de serviço.
A descoberta faz parte de um lote de vulnerabilidades no mesmo SDK reportado pela IoT Inspector (hoje IoT Inspector/Forescout), que documentou o padrão de reuso desse código de gerência em produtos de múltiplos fabricantes que licenciam o Jungle SDK da Realtek sem revisão de segurança adicional.
Cómo se explota
O vetor é uma requisição HTTP (normalmente POST) para os endpoints CGI de administração (formRebootCheck, formWsc, formWlanMultipleAP, formWlSiteSurvey, formStaticDHCP, formSysCmd) hospedados pelo boa/webs na porta de gerência do dispositivo — em muitos produtos, a interface administrativa também fica acessível pela WAN por configuração padrão ou erro de configuração do integrador, o que explica a inclusão na KEV e a exploração observada em campo. A pré-condição real varia por fabricante: alguns exigem autenticação prévia na interface (sessão de admin válida), outros expõem esses handlers sem autenticação por falha de implementação — a própria descrição oficial destaca que a exploitabilidade 'vai diferir com base no que o vendor final fez com o servidor web do SDK', então não existe uma resposta única de pré-requisito válida para todo produto afetado.
Para os buffers overflow, o atacante envia um valor anormalmente longo no parâmetro vulnerável (submit-url, ifname, hostname ou peerPin), sobrescrevendo o buffer de pilha e, potencialmente, o endereço de retorno — resultado típico é queda do processo (DoS) e, em cenários sem mitigação de pilha, possível desvio de execução. Para formSysCmd e a injeção via peerPin em formWsc, o atacante insere metacaracteres de shell no valor do parâmetro, que é passado a uma chamada de execução de comando do sistema operacional sem sanitização — resultado é execução arbitrária de comando com os privilégios do processo do servidor web, tipicamente root em dispositivos embarcados.
A CVE está no catálogo KEV da CISA com confirmação de exploração ativa, e existe template Nuclei público para varredura/detecção — ambos indicativos de que scanners automatizados e campanhas de botnet de IoT já testam esses endpoints em massa na internet.
Versiones
Cómo protegerse
Não há, nas fontes consultadas, uma versão numerada do Jungle SDK identificada explicitamente como 'corrigida'; a Realtek publicou advisory conjunto para CVE-2021-35392 e CVE-2021-35395 (PDF em realtek.com) orientando os fabricantes licenciados a aplicar os patches do SDK, mas a remediação efetiva depende de cada fabricante final lançar firmware atualizado incorporando o SDK corrigido — não existe atualização direta ao usuário via Realtek. Isso significa que a ação prática é: identificar o fabricante e modelo do dispositivo, verificar se ele expõe binário boa ou webs na interface de gerência, e procurar firmware atualizado desse fabricante específico que declare correção para esta CVE ou para o lote de vulnerabilidades do Jungle SDK.
Como controle compensatório quando não há firmware corrigido: desabilitar completamente o acesso remoto/WAN à interface de administração, restringir a interface de gerência a uma VLAN de gestão isolada ou a IPs confiáveis, e trocar credenciais padrão (mitiga apenas os casos onde autenticação é exigida, não os casos de endpoint sem autenticação). Não usar a interface de administração como interface de rede confiável — colocar o segmento de gerência atrás de firewall que bloqueie POST para os caminhos CGI citados reduz a superfície, mas não substitui o patch, já que a falha é na lógica de parsing do próprio handler.
O que não funciona: aplicar apenas um WAF genérico sem regra específica para os parâmetros submit-url/ifname/hostname/peerPin/sysCmd tende a não bloquear a exploração, porque o payload pode ser um valor de comprimento normal com conteúdo malicioso (injeção) e não necessariamente uma string obviamente anômala. Trocar apenas a senha de admin não mitiga os handlers que a descrição indica serem explorados sem verificação adequada de sessão em algumas implementações.
Cómo detectar
Procurar em logs de acesso web (ou tráfego HTTP capturado) por requisições POST para os caminhos CGI /boaform/admin/formRebootCheck, formWsc, formWlanMultipleAP, formWlSiteSurvey, formStaticDHCP e formSysCmd, especialmente com valores de comprimento incomum nos parâmetros submit-url, ifname, hostname ou peerPin, ou contendo metacaracteres de shell (;, |, &, `, $(), backtick) nos parâmetros sysCmd/peerPin. A existência de template Nuclei público sugere que scanners de internet (Shodan-driven ou botnets de IoT) testam esses caminhos indiscriminadamente, então presença isolada de uma requisição não confirma comprometimento — mas volume repetido, fuzzing de comprimento de parâmetro, ou payload de comando de sistema no corpo são sinais fortes de tentativa de exploração. Não há assinatura única confiável porque a exploração final (overflow vs. injeção) e o formato do payload variam por handler e por implementação do fabricante.