CVE-2021-40407
Prioriza la corrección. Ella está bajo explotación confirmada por CISA.
The impacted product could be end-of-life (EoL) and/or end-of-service (EoS). Users should discontinue product utilization if a current mitigation is unavailable.
Resumen
Vulnerabilidade de OS command injection na câmera IP Reolink RLC-410W, no processamento do parâmetro domain da API SetDdns usada para configurar DDNS. É uma das seis falhas de injeção de comando reportadas pela Talos no mesmo device (TALOS-2021-1424), mas o vetor CVSS marca PR:H — ou seja, exige autenticação administrativa no dispositivo, não é RCE anônima direto da internet. Está no catálogo KEV da CISA por exploração confirmada, mas o campo 'ransomware' consta como desconhecido e não há detalhamento público de campanha.
Detalle técnico
A câmera expõe uma API JSON baseada em comandos (cmd) para configuração de rede, entre eles SetDdns, SetLocalLink e SetDevName. O valor de domain enviado no payload de SetDdns é gravado em arquivo de configuração e depois consumido pela função set_dds_config do firmware. Dependendo do tipo de DDNS (type_of_ddns 0, 1, 3 ou 4), essa função monta uma string de comando shell via snprintf usando format strings como '/mnt/tmp/ddns/ddns-config %s %s %s %s %d %s' e insere diretamente ddns->domain, ddns->username e ddns->password sem qualquer sanitização ou escaping de metacaracteres de shell.
Cómo se explota
A exploração ocorre via requisição HTTP autenticada à API do dispositivo com cmd=SetDdns, no parâmetro param.Ddns.domain (ou também username/password, que passam pelo mesmo caminho de formatação de comando). Se o valor contiver metacaracteres de shell (aspas, ponto-e-vírgula, backticks, $(), pipes), eles são interpretados pelo shell no momento em que pip_system() (equivalente a system()) executa a string montada, resultando em execução arbitrária de comando no contexto de privilégio do processo do firmware. O pré-requisito real e frequentemente ignorado pela manchete 'CVSS 9.1' é PR:H: o atacante precisa de sessão autenticada como administrador no dispositivo — credenciais padrão, credenciais vazadas/reutilizadas ou uma sessão já comprometida satisfazem essa condição, mas isso não é RCE não autenticada.
Versiones
Cómo protegerse
Não foi identificada, nas fontes disponíveis, uma versão de firmware específica que corrija esta CVE — a Talos testou apenas v3.0.0.136_20121102 e não publicou versão corrigida. A CISA, ao incluir a falha no KEV catalog, orienta verificar se o produto está em fim de vida (EoL/EoS) e, se não houver mitigação disponível, descontinuar o uso do equipamento; ela referencia as páginas de EoL e download center do fornecedor como ponto de checagem de firmware atualizado. Como controle compensatório real: nunca expor a interface administrativa da câmera diretamente à internet (sem NAT/port-forward), trocar credenciais padrão, restringir acesso à interface de gestão por segmentação de rede/VLAN dedicada, e desabilitar DDNS se não for usado. Não confiar apenas em firewall perimetral de borda como mitigação suficiente, já que o vetor é HTTP autenticado na própria LAN/gestão do dispositivo.
Cómo detectar
Em logs de acesso à API HTTP do dispositivo, procurar requisições com cmd=SetDdns (ou SetLocalLink/SetDevName) contendo nos campos domain, username, password ou dns1/dns2 caracteres típicos de injeção de shell (`;`, backtick, `$(`, `|`, `&&`, aspas). Como a falha exige autenticação, correlacionar esses comandos com logins administrativos recentes de origem incomum. Não há assinatura pública de tráfego malicioso documentada nas fontes consultadas — na ausência de logging detalhado no próprio firmware do dispositivo, a detecção depende inteiramente de captura de tráfego HTTP na rede local, já que a câmera não expõe log de auditoria robusto conhecido.