FreePBX Affected by Authentication Bypass Leading to SQL Injection and RCE
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
Resumo
Falha crítica no módulo comercial "endpoint" do FreePBX (versões 15, 16 e 17) permite que um atacante não autenticado, com acesso de rede ao Administrator Control Panel (ACP), explore sanitização insuficiente de dados de entrada para bypassar autenticação, injetar SQL e obter execução remota de código, potencialmente com privilégios de root. O CVSS 10.0 é justificado pela ausência total de pré-requisitos (sem autenticação, sem interação do usuário), mas o risco real depende de uma condição decisiva: o painel administrativo precisa estar exposto à internet sem controle de IP, e o módulo comercial "endpoint" precisa estar instalado — sistemas sem esse módulo, segundo o próprio fornecedor, provavelmente não estão vulneráveis.
Detalhamento técnico
A vulnerabilidade combina CWE-288 (bypass de autenticação via canal alternativo) com CWE-89 (SQL injection). O ponto de entrada é o processamento de dados fornecidos pelo usuário no módulo comercial "endpoint", acessado através do script modular.php do FreePBX Administrator. A sanitização insuficiente nesse fluxo permite que um requerente sem sessão autenticada alcance funcionalidades administrativas — o bypass de autenticação — e a partir daí injete SQL, manipulando diretamente tabelas do banco (MariaDB/MySQL) usado pelo Asterisk/FreePBX.
O fornecedor descreve a cadeia como um encadeamento de múltiplos passos: a injeção SQL inicial é usada para manipulação arbitrária do banco (por exemplo, inserção de registros na tabela ampusers), e essa manipulação é então explorada para alcançar execução de código no sistema operacional subjacente, chegando a acesso potencialmente root. Não há divulgação pública detalhada do parâmetro exato injetado ou da query vulnerável — o advisory do fornecedor e as análises até aqui descrevem o mecanismo em nível de fluxo (bypass → SQLi → manipulação de dados → RCE), sem publicar o payload completo.
O fornecedor não especifica se a falha depende de uma versão específica do próprio módulo endpoint anterior às corrigidas ou se afeta qualquer instalação do módulo nas linhas 15, 16 e 17 — a orientação prática é verificar a versão instalada do módulo, não do FreePBX em si.
Como é explorada
A exploração observada in-the-wild começou em ou antes de 21 de agosto de 2025, contra sistemas FreePBX 16 e 17 conectados diretamente à internet pública com ACLs/filtros de IP inadequados no Administrator Control Panel. O vetor é HTTP não autenticado contra modular.php; não há necessidade de interação do usuário nem de credenciais prévias. A complexidade de ataque é baixa — watchTowr Labs publicou uma ferramenta de detecção ("Detection Artifact Generator") que envia uma única requisição de exploração e, minutos depois, verifica se um webshell foi criado ou se um usuário novo foi inserido na base, confirmando a trivialidade da explicação técnica publicamente descrita.
O resultado final documentado por atacantes reais inclui: criação de arquivos suspeitos como /var/www/html/.clean.sh, modificação ou remoção de /etc/freepbx.conf, inserção de usuários administrativos falsos na tabela ampusers do banco asterisk, chamadas de teste para a extensão 9998, e cron jobs maliciosos. Isso indica que o objetivo pós-exploração observado foi estabelecer persistência e controle total do sistema, não apenas prova de conceito.
A CISA incluiu a falha no catálogo KEV em 29/08/2025, confirmando exploração ativa, com prazo de correção fixado em 19/09/2025. Existem módulo Metasploit, template Nuclei e PoC pública, o que reduz ainda mais a barreira técnica para exploração em massa via scanning da internet.
Versões
Como se proteger
A correção definitiva é atualizar o módulo comercial "endpoint" para a versão corrigida: 15.0.66 (linha 15), 16.0.89 (linha 16) ou 17.0.3 (linha 17). A atualização pode ser feita via Admin → Module Admin no painel, ou por linha de comando como root/sudo: fwconsole ma upgradeall — seguido da verificação da versão instalada com fwconsole ma list | grep endpoint. O fornecedor reforça que sistemas sem automação de atualizações de segurança habilitada podem não ter recebido o patch automaticamente.
O paliativo real, quando a atualização imediata não é possível, é restringir o acesso ao Administrator Control Panel usando o módulo Firewall do FreePBX (ou controle de rede equivalente), permitindo apenas IPs confiáveis e bloqueando a zona Internet/Externa para a interface web de administração — essa era a orientação emergencial do fornecedor antes mesmo do patch estar disponível. Esse controle reduz drasticamente a superfície de ataque mas não elimina a vulnerabilidade em si; qualquer host com acesso à rede interna permitida continua exposto.
Se o módulo "endpoint" não estiver instalado no sistema, o fornecedor afirma que o risco de infecção por essa cadeia específica é baixo — mas recomenda ainda assim revisar a exposição do ACP, já que versões EOL do FreePBX não foram testadas e podem ser afetadas por variações da falha. Não há indicação de que WAF genérico ou regras de bloqueio de payload sejam suficientes como mitigação confiável, dado que o fornecedor não publicou a assinatura exata da exploração usada nos ataques reais.
Como detectar
O fornecedor lista indicadores de comprometimento concretos: arquivo /etc/freepbx.conf ausente ou modificado recentemente; existência do arquivo /var/www/html/.clean.sh (não deveria existir em sistema íntegro); requisições POST para modular.php nos logs do Apache/httpd desde pelo menos 21 de agosto de 2025 (zgrep modular.php /var/log/{httpd,apache2}/access*); chamadas registradas para a extensão 9998 nos logs do Asterisk (grep 9998 /var/log/asterisk/full*); e usuários desconhecidos ou suspeitos na tabela ampusers do banco asterisk (mysql -e "SELECT * FROM ampusers" asterisk).
A ferramenta pública do watchTowr Labs confirma vulnerabilidade ativa enviando uma requisição de teste e verificando upload de webshell ou criação de usuário de teste — útil para validação controlada em ambiente próprio, mas seu uso contra sistema de terceiros constitui exploração da falha. Não há um sinal único e infalível de ausência de comprometimento: a ausência dos IOCs listados reduz a probabilidade de infecção, mas o fornecedor recomenda checklist completo, não confiança em um único indicador.