← back
CVE-2020-10221highunder attackCWE-78

CVE-2020-10221

83Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 8.8epss 37%
from disclosure to weapon4 days
Published on NVDMar 8
1st PoC+4d
CISA KEV+605d
exploitation probability
37%top 2% of all CVEs
observed exploitation
yesCISA + VulnCheck
2 public exploit(s)
Action required by CISAfederal deadline: 2022-05-03

Apply updates per vendor instructions.

Summary

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.

Technical detail

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.

How it’s exploited

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.

Versions

Affected
rConfig até a versão 3.94 (inclusive), conforme descrição oficial da CVE.
Fixed in
Não identificada nas fontes consultadas. O advisory do fornecedor com o número de versão corrigida não estava disponível nas referências analisadas; a orientação da CISA é genérica ("aplicar atualizações conforme instruções do fornecedor"), sem apontar release específico.

How to protect

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.

How to detect

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.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
lib/ajaxHandlers/ajaxAddTemplate.php in rConfig through 3.94 allows remote attackers to execute arbitrary OS commands via shell metacharacters in the fileName POST parameter.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected products
n/a · n/a
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.