Cisco Small Business RV320 and RV325 Routers Command Injection Vulnerability
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply updates per vendor instructions.
Resumo
Falha de injeção de comandos no gerador de certificados X.509 da interface web dos roteadores Cisco RV320/RV325, que permite executar comandos arbitrários como root no Linux subjacente. O CVSS 7.2 exige credenciais administrativas válidas — não é pré-autenticação, apesar de exploits públicos e módulos Metasploit tratarem o cenário como trivial de escalar depois de obter acesso ao painel. Está no catálogo KEV da CISA porque o próprio PSIRT da Cisco confirmou scanning ativo e exploit público circulando desde a divulgação inicial em janeiro de 2019.
Detalhamento técnico
O componente vulnerável é o gerador de certificados do painel administrativo (endpoint self_generator.htm / certificate_handle2.htm). O firmware monta um comando de shell usando o campo common_name informado pelo usuário sem sanitização adequada — classificado pela Cisco como CWE-20 (Improper Input Validation). O primeiro patch da Cisco (firmware 1.4.2.19/1.4.2.20) tentou bloquear a injeção filtrando aspas simples no input, mas o filtro era contornável: a RedTeam Pentesting demonstrou que uma string como 'a$(ping -c 4 )'b ainda escapa da sanitização e é interpretada pelo shell, disparando o comando ping injetado dentro da própria construção do certificado.
O problema de fundo é que o valor do campo é concatenado diretamente em uma chamada de shell no lado do dispositivo (provavelmente via um binário CGI que monta comandos openssl com os parâmetros do formulário), sem escapar corretamente meta-caracteres de shell como $() . O atacante controla integralmente o conteúdo de common_name e de outros campos do formulário de geração de certificado, o que dá controle total sobre o comando final.
A CVE-2019-1652, como publicada pela Cisco, cobre a vulnerabilidade original e seu primeiro patch incompleto. A RedTeam identificou que mesmo depois do fix parcial (1.4.2.19/1.4.2.20) a mesma classe de bug persistia — o que levou a Cisco a revisar o advisory e liberar a correção completa apenas na versão 1.4.2.22, em abril de 2019, dois meses e meio após a publicação inicial.
Como é explorada
A exploração requer uma sessão autenticada válida no painel administrativo (cookie de sessão obtido com credenciais de admin) — é isso que justifica PR:H no vetor CVSS, mesmo com AC:L e UI:N. O ataque consiste em uma requisição HTTP POST para o endpoint do gerador de certificados, com o campo common_name (ou outro campo do formulário, urlencoded) contendo a string que engana o filtro de aspas simples e injeta o comando desejado dentro da subshell usada para gerar o certificado. O firmware bloqueia o User-Agent 'curl' por padrão, então ferramentas de exploração precisam trocar o User-Agent para evadir esse filtro cosmético.
Na prática, isso não é tão restritivo quanto parece: RV320/RV325 têm histórico de credenciais padrão fracas, painéis expostos na WAN quando o Remote Management está ativado, e falhas correlatas de divulgação de informação (como a CVE-2019-1653, que expõe configuração e hashes sem autenticação) que servem de trampolim para obter credenciais administrativas antes de disparar esta injeção. É esse encadeamento — vazamento de credenciais seguido de RCE via certificado — que motivou scanning massivo documentado pelo próprio PSIRT da Cisco já na semana da divulgação.
Existe exploração ativa confirmada: a CVE está no catálogo KEV da CISA, há módulo Metasploit publicado e múltiplos PoCs no Exploit-DB e Packet Storm. O EPSS de 0.959 reflete essa realidade — é uma das CVEs com maior probabilidade histórica de exploração observada no conjunto de dados do EPSS.
Versões
Como se proteger
A correção completa está na Firmware Release 1.4.2.22 e posteriores. As versões 1.4.2.19 e 1.4.2.20 continham apenas uma correção parcial (bloqueio de aspas simples), que a RedTeam Pentesting demonstrou ser contornável — administradores que atualizaram apenas até a 1.4.2.20 seguem vulneráveis à mesma classe de bug, mesmo achando que corrigiram.
A Cisco afirma explicitamente que não há workaround que elimine a vulnerabilidade. A única mitigação real é reduzir a superfície de exposição: desabilitar o recurso Remote Management (em Firewall > General, desabilitado por padrão) impede que a interface de gerenciamento web fique acessível pela porta WAN, deixando-a disponível apenas na LAN. Isso não corrige a falha, apenas remove o vetor remoto pela internet — quem tem acesso à LAN ou VPN interna ainda pode explorar.
Restringir o painel administrativo por ACL de rede, exigir MFA/VPN para acesso administrativo, e monitorar tentativas de login administrativo são controles compensatórios, não substitutos do patch. Vale notar que RV320 e RV325 estão em fim de vida útil dentro do ciclo de produtos Cisco Small Business — convém verificar se o hardware ainda recebe suporte de firmware antes de depender de atualizações futuras.
Como detectar
A Cisco publicou três regras Snort específicas para esta vulnerabilidade (SIDs 48946, 48947, 48948), que podem ser usadas em IDS/IPS para detectar tentativas de exploração no tráfego HTTP. Em logs do próprio dispositivo ou de proxy/gateway, sinais de interesse são requisições POST para os endpoints self_generator.htm ou certificate_handle2.htm contendo meta-caracteres de shell (aspas simples, $(), backticks) no campo common_name ou em outros campos do formulário de geração de certificado, especialmente combinados com User-Agent não padrão (evadindo o bloqueio de 'curl'). A ausência de log correlato não descarta exploração: o PSIRT da Cisco já havia identificado scanning ativo em escala antes mesmo da confirmação pública do bypass, então dispositivos expostos à internet sem evidência de log específico ainda podem ter sido alvo de tentativas anteriores à ativação de qualquer regra de detecção.