CVE-2022-44877
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 formulário de login do CentOS Web Panel 7 (CWP7) permite execução remota de comandos como root, sem autenticação. É explorada em massa desde a divulgação, está no catálogo KEV da CISA e tem PoC, módulo Metasploit e template Nuclei públicos — CVSS 9.8 aqui reflete a realidade, não é inflado.
Detalhamento técnico
O ponto vulnerável é login/index.php, o endpoint que processa tentativas de autenticação no painel CWP7. Segundo o próprio descobridor (Numan Türle, Gais Cyber Security), quando uma tentativa de login falha, o painel registra a entrada incorreta em um log do sistema usando aspas duplas para interpolar o valor recebido em um comando de shell. Em shell, strings entre aspas duplas ainda passam por expansão de variáveis e substituição de comandos ($() ou crase), diferente de aspas simples — é essa diferença que abre a porta.
Como é explorada
O atacante envia uma requisição POST para /login/index.php com o parâmetro 'login' contendo sintaxe de substituição de comando, por exemplo $(comando), junto de credenciais quaisquer (o PoC público usa username=root&password=toor, que evidentemente falham). O login falho aciona o registro vulnerável, e o comando dentro de $() é executado pelo shell do host antes mesmo de qualquer autenticação bem-sucedida. Não há pré-condição de acesso autenticado, configuração especial ou interação de usuário — só alcançar a porta do painel administrativo (tipicamente 2031 em instalações padrão do CWP) pela rede. O impacto final é execução de comando arbitrário no sistema operacional, geralmente com privilégios elevados, já que o CWP frequentemente roda como root; isso permite deploy de webshell, reverse shell, persistência e movimento lateral. A presença no catálogo KEV da CISA confirma exploração ativa e generalizada, coerente com o EPSS próximo de 1.0 e a disponibilidade de módulo Metasploit e template Nuclei, que reduzem a exploração a um comando de scanner.
Versões
Como se proteger
Atualizar o CWP7 para a versão 0.9.8.1147 ou posterior corrige a falha; o próprio aviso do descobridor recomenda 'atualizar para a versão atual do CWP7'. Se a atualização não for imediata, o paliativo real é bloquear o acesso à interface administrativa do painel (porta de login, comumente 2031) por firewall, restringindo a origem a IPs de administração ou VPN — isso reduz drasticamente a superfície de ataque, mas não corrige a falha subjacente. Regras de WAF que bloqueiem metacaracteres de shell ($, crase, ;, |, &&) no parâmetro 'login' são um controle compensatório parcial, sujeito a bypass por variação de encoding; não substituem o patch. Não há mitigação por 'esconder' a porta via NAT ou mudar a porta padrão sem controle de acesso — isso não impede exploração caso o atacante descubra a porta via scan.
Como detectar
Nos logs de acesso do CWP/servidor web, procurar requisições POST para /login/index.php cujo parâmetro 'login' contenha '$(' ou crases — no PoC público, esse parâmetro aparece até na query string da URL, o que o torna visível em logs padrão de servidor web. Vale também correlacionar tentativas de login com falha seguidas por conexões de saída inesperadas do host (callbacks de reverse shell), criação de processos anômalos originados do usuário/daemon do painel, ou novos artefatos (webshells, crons) em diretórios do CWP — sinais indiretos de que o comando injetado foi executado com sucesso.