CVE-2020-10221
Prioriza la corrección. Ella está bajo explotación confirmada por CISA y tiene prueba de concepto pública.
Apply updates per vendor instructions.
Resumen
Falha de OS command injection no rConfig, ferramenta de gerenciamento de configuração de rede, no endpoint lib/ajaxHandlers/ajaxAddTemplate.php. O parâmetro fileName enviado via POST é usado na construção de um comando de sistema sem neutralizar metacaracteres de shell, permitindo execução arbitrária de comandos. O CVSS de 8.8 é alto, mas o vetor PR:L deixa claro que a exploração exige uma sessão autenticada válida no rConfig — não é uma falha pré-autenticação, ao contrário do que a nota curta sugere.
Detalle técnico
O ponto vulnerável está em lib/ajaxHandlers/ajaxAddTemplate.php, handler AJAX que trata o upload/cadastro de templates de configuração no rConfig. O valor recebido no campo POST fileName é incorporado na chamada que o backend faz ao sistema operacional (provavelmente via função como exec/system/shell_exec em PHP, embora o trecho exato de código não tenha sido confirmado nas fontes analisadas) sem sanitização de metacaracteres de shell. Isso classifica a falha como CWE-78 (Improper Neutralization of Special Elements used in an OS Command).
O atacante controla o conteúdo do parâmetro fileName na requisição HTTP POST. Como o handler está sob autenticação (a interface administrativa do rConfig exige login), a exploração pressupõe uma conta válida — o vetor CVSS PR:L confirma isso, mesmo com privilégios baixos sendo suficientes.
Essa CVE faz parte de um lote de falhas divulgadas em 2020 no rConfig envolvendo múltiplos handlers AJAX com o mesmo padrão de injeção (concatenação direta de entrada do usuário em comandos de shell), o que indica um problema sistêmico de sanitização de entrada nessa camada da aplicação, não um bug isolado.
Cómo se explota
Para explorar, o atacante precisa de credenciais válidas de acesso à interface web do rConfig (autenticação necessária, conforme PR:L). Com uma sessão autenticada, basta enviar uma requisição POST ao endpoint /lib/ajaxHandlers/ajaxAddTemplate.php com o parâmetro fileName contendo metacaracteres de shell (separadores de comando, substituição de comando, pipes) para que o comando injetado seja executado pelo processo do servidor web/PHP. Não há necessidade de interação do usuário e a complexidade de ataque é baixa (AC:L) uma vez obtido o acesso autenticado.
O resultado final é execução de código arbitrário com os privilégios do processo web (tipicamente o usuário do Apache/Nginx/PHP-FPM), o que na prática costuma equivaler a controle total do host onde o rConfig roda, dado que a aplicação frequentemente é executada com permissões elevadas para gerenciar configurações de dispositivos de rede.
Existe PoC pública (PacketStorm, escrito como "rConfig 3.93 Authenticated Remote Code Execution", e o writeup técnico de Engin Demirbilek) documentando a cadeia de exploração. A CISA incluiu a CVE no catálogo KEV em novembro de 2021, confirmando exploração ativa no mundo real, com prazo de correção definido para maio de 2022 — reforçando que a falha foi usada em ataques reais, não apenas em laboratório.
Versiones
Cómo protegerse
A orientação da CISA no KEV é genérica: "aplicar atualizações conforme instruções do fornecedor". Nas fontes analisadas não foi possível confirmar um número de versão específico do rConfig que corrija esta CVE — o registro trata apenas de "rConfig through 3.94" como faixa vulnerável, sem indicar uma versão patcheada. Antes de assumir que uma versão posterior resolve o problema, é necessário validar diretamente no changelog/repositório oficial do projeto.
Como controle compensatório real: restringir o acesso à interface administrativa do rConfig (rede segmentada, VPN, allowlist de IPs), já que a exploração depende de autenticação — reduzir a superfície de contas com acesso a essa interface e revisar credenciais expostas diminui o risco mesmo sem patch. Não expor a interface do rConfig diretamente à internet é o controle mais efetivo dado o histórico de múltiplas RCEs autenticadas encontradas nesse produto no mesmo período.
Não funciona como mitigação: confiar apenas em WAF genérico para bloquear metacaracteres de shell, pois o parâmetro pode ser fragmentado ou codificado; e assumir que exigir autenticação por si só neutraliza o risco — contas de operação de rede com privilégios baixos já são suficientes para explorar (PR:L), então a segmentação de rede e a auditoria de contas são mais relevantes que confiar no gate de login.
Cómo detectar
Procurar em logs de acesso web (Apache/Nginx) e logs de PHP requisições POST para /lib/ajaxHandlers/ajaxAddTemplate.php contendo no parâmetro fileName metacaracteres de shell como ; | & ` $() > < ou sequências de encoding que os representem. No nível de host, monitorar processos filhos anômalos gerados pelo usuário do servidor web/PHP-FPM (shells, utilitários de rede, downloaders) imediatamente após requisições a esse endpoint.
Não há assinatura única e confiável publicamente documentada nas fontes consultadas além do padrão geral de injeção via esse parâmetro; a ausência de logging de aplicação detalhado no rConfig pode dificultar a detecção retroativa, então a correlação entre logs de acesso e criação de processos no host é o sinal mais prático disponível.