← voltar
CVE-2019-19006criticalsob ataqueCWE-287

CVE-2019-19006

70Vexday Risk Score

Priorize a correção. Ela está sob exploração confirmada pelo CISA.

ssvc Actcvss 9.8epss 37%
da publicação à arma
Publicada no NVD21 de nov.
CISA KEV+2266d
probabilidade de exploração
37%top 2% das CVEs
exploração observada
simCISA + VulnCheck
Ação exigida pela CISAprazo federal: 2026-02-24

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 de autenticação (CWE-287) no módulo Framework do FreePBX que permite a um atacante não autenticado obter uma sessão administrativa válida no portal admin, sem conhecer a senha. Afeta diretamente quem expõe o painel administrativo do FreePBX/PBXact à internet — é o cenário mais comum em instalações VoIP mal segmentadas, e por isso a falha foi amplamente explorada em campanhas de fraude de chamadas (toll fraud) e implantação de webshells.

Detalhamento técnico

A vulnerabilidade está no fluxo de autenticação do módulo Framework do FreePBX. Ao receber uma tentativa de login, o código primeiro grava uma sessão PHP associada ao usuário informado e só depois valida a senha contra o banco; se a senha não confere, a sessão é destruída (unset). O parâmetro 'password' enviado pelo formulário de login não passa por sanitização de tipo antes de entrar na rotina de comparação.

Ao enviar o parâmetro como elemento de array (por exemplo password[0]) em vez de string, a função de comparação de senha falha de forma anômala antes de chegar ao ponto do código que remove a sessão. Resultado: a sessão criada para o usuário escolhido — inclusive 'admin' — permanece válida, mesmo com senha incorreta ou irrelevante. O atacante não precisa acertar a senha, só escolher qual usuário quer personificar.

É CWE-287 (Improper/Incorrect Authentication) segundo classificação da CISA no catálogo KEV. A Check Point Research reconstruiu o mecanismo comparando tráfego de ataque capturado com commits no repositório GitHub do FreePBX Framework logo após a correção, já que o Sangoma optou por não publicar detalhes técnicos do vetor por preocupação com exploração em massa.

Como é explorada

O vetor é remoto, não autenticado e via HTTP/HTTPS contra o portal administrativo do FreePBX (porta padrão do Admin GUI, tipicamente 443 ou 80/443 dependendo da instalação). Não exige configuração não padrão nem acesso interno — o único pré-requisito real é que o painel admin esteja acessível pela rede de onde o atacante está, o que Sangoma confirmou no fórum oficial: instalações que restringem o Admin GUI e não o expõem à internet aberta não são exploráveis remotamente por este vetor.

A exploração documentada pela Check Point Research (campanha 'Inj3ctor3', 2020) segue um fluxo consistente: varredura da internet com SIPVicious (módulo svmap) para localizar servidores FreePBX/Asterisk expostos e identificar versões vulneráveis; exploração da falha de autenticação para logar como admin; uso do módulo asterisk-cli do próprio painel para executar comandos e enviar um webshell PHP inicial codificado em base64. A partir daí a exploração se ramifica em duas cadeias: uma extrai credenciais dos arquivos /etc/amportal.conf e /etc/asterisk/sip_additional.conf (senhas do banco de dados FreePBX e de todas as extensões SIP) e usa o sistema comprometido para originar chamadas de saída fraudulentas testando prefixos internacionais; a outra instala webshells adicionais com proteção por senha e controle de IP de origem, persistência via alteração de .htaccess e um painel PHP que permite originar chamadas e executar comandos arbitrários.

O impacto final é acesso administrativo total ao PBX: leitura de credenciais de todas as extensões, capacidade de originar chamadas (fraude de tarifação/toll fraud com custo financeiro direto à vítima), execução de comandos no sistema operacional subjacente e persistência via webshell. A CVE está no catálogo KEV da CISA como exploração confirmada in-the-wild.

Versões

Afetadas
Módulo FreePBX Framework: ramo 13 até 13.0.197.13 (inclusive); ramo 14 até 14.0.13.11 (inclusive); ramo 15 até 15.0.16.26 (inclusive). A descrição oficial cita '115.0.16.26' para o ramo 15, que aparenta ser erro de digitação — o próprio anúncio do fornecedor no fórum FreePBX referencia a versão corrigida como 15.0.16.27, confirmando que o ramo é o 15.x.
Corrigidas em
Framework 13.0.197.14 ou superior (ramo 13); Framework 14.0.13.12 ou superior (ramo 14); Framework 15.0.16.27 ou superior (ramo 15). A correção está no módulo 'framework', não na versão geral do FreePBX/PBXact — verificar a versão do módulo com 'fwconsole ma list'.

Como se proteger

A correção do fornecedor é atualizar o módulo Framework (não a versão geral do FreePBX) para: 13.0.197.14 ou superior, 14.0.13.12 ou superior, 15.0.16.27 ou superior. A atualização é aplicada via Admin -> Module Admin, ou pela linha de comando com 'fwconsole ma list' para checar a versão instalada do módulo 'framework' e 'fwconsole ma upgrade framework' (ou upgrade geral) para corrigir. Sistemas configurados para aplicar atualizações de segurança automaticamente já devem estar corrigidos desde novembro de 2019, mas a checagem manual é necessária porque a falha continuou sendo explorada em campanhas até 2020, indicando muitos sistemas nunca atualizados.

Se a atualização não é imediata, o controle compensatório real e confirmado pelo próprio Sangoma é não expor o Admin GUI do FreePBX à internet aberta — restringir por firewall, VPN ou lista de IPs. Isso neutraliza o vetor remoto por completo, já que o exploit depende de acesso HTTP ao portal admin. Deixar apenas as portas SIP e de mídia expostas (com origem restrita a IPs de provedores conhecidos) e não abrir a porta administrativa é suficiente segundo confirmação dos próprios mantenedores no fórum oficial.

Se houver suspeita de comprometimento anterior à correção: resetar sessões PHP ativas ('rm -f /var/lib/php/session/*'), auditar contas de admin em busca de usuários não reconhecidos, resetar senhas/segredos de todas as extensões SIP (visíveis no painel admin para qualquer sessão autenticada) e trocar credenciais de provedores SIP upstream que usem autenticação por usuário/senha. Não confiar apenas na presença de um WAF genérico como mitigação — o ataque manipula um parâmetro de formulário legítimo (password como array) e não exibe assinatura óbvia de exploit tradicional (SQLi, RCE payload), o que reduz a eficácia de regras de WAF não específicas para este caso.

Como detectar

Nos logs de acesso HTTP do servidor web (access_log/error_log do Apache ou equivalente), procurar requisições POST à página de login do admin (endpoint de autenticação do FreePBX) com o parâmetro 'password' enviado como array — sintaticamente algo como 'password[0]=' ou 'password[]=' no corpo da requisição — em vez do formato padrão 'password=valor'. Esse padrão de parâmetro é a assinatura mais direta da tentativa de exploração.

Outros sinais indiretos, conforme documentado na campanha real: varreduras prévias com assinatura de SIPVicious/svmap na rede; contas de administrador novas ou não reconhecidas no painel FreePBX; presença de arquivos webshell como '/var/www/html/admin/views/config.php' não originado de instalação legítima; entradas anômalas adicionadas a '.htaccess' redirecionando para esse arquivo; chamadas de saída para destinos internacionais incomuns nos CDRs do Asterisk (indicativo de toll fraud); e download de conteúdo codificado em base64 a partir de serviços como Pastebin nos logs de outbound do servidor. Não há um único log nativo do FreePBX que registre 'tentativa de bypass' de forma explícita — a detecção depende de correlacionar esses sinais indiretos, já que a exploração usa um parâmetro de formulário legítimo manipulado, não uma rota ou payload exótico.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
Sangoma FreePBX 115.0.16.26 and below, 14.0.13.11 and below, 13.0.197.13 and below have Incorrect Access Control.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Produtos afetados
n/a · n/a