
Existe uma vulnerabilidade de Cross-Site Scripting (XSS) armazenado no Issabel PBX versão 4.0.0-6. Isso permite que um atacante autenticado injete código JavaScript ou HTML arbitrário por meio dos campos de entrada Grupo e Descrição encontrados em Sistema → Usuários → Grupos.
| Campo | Detalhes |
|---|
| ID do CVE | CVE-2023-37191 |
| Produto | Issabel PBX (issabel-pbx) |
| Versão Afetada | 4.0.0-6 |
| Tipo de Vulnerabilidade | Cross-Site Scripting (XSS) Armazenado |
| Severidade | Média |
| Data da Descoberta | 7 de julho de 2023 |
| Descoberto Por | Sahil Ojha |
| Site do Fornecedor | https://www.issabel.org/ |
| Código-Fonte | https://github.com/IssabelFoundation/issabelPBX |
| Testado Em | Windows |
Existe uma vulnerabilidade de Cross-Site Scripting (XSS) Armazenado no Issabel PBX versão 4.0.0-6. O aplicativo não sanitiza nem codifica adequadamente a entrada fornecida pelo usuário antes de armazená-la no banco de dados e, posteriormente, renderizá-la no navegador. Isso permite que um atacante autenticado injete código JavaScript ou HTML arbitrário por meio dos campos de entrada Group e Description, encontrados em System → Users → Groups.
Depois que o payload malicioso é salvo, ele é armazenado persistentemente no servidor. Toda vez que qualquer usuário (incluindo administradores) visita a página afetada, o script injetado é executado automaticamente na sessão do navegador — sem exigir nenhuma ação adicional do atacante. É isso que distingue um XSS Armazenado (Persistente) de um XSS Refletido; o impacto é mais amplo e mais perigoso porque o payload afeta todos os visitantes da página.
System → Users → Groups da interface web do Issabel PBXGroup (campo de nome) e Description (campo de texto)Uma exploração bem-sucedida desta vulnerabilidade pode permitir que um atacante:
Como o payload está armazenado no servidor, todos os usuários que visitam a página comprometida são afetados — ampliando o dano em comparação com um ataque de XSS refletido.
Passo 1: Faça login na interface web do Issabel PBX usando credenciais de administrador.
Passo 2: Navegue até System → Users → Groups. Nos campos de entrada Group e/ou Description, insira o seguinte payload XSS:
"><script>alert(1)</script>
Os campos devem ficar semelhantes à captura de tela abaixo:

Passo 3: Clique em Save. O payload agora está armazenado persistentemente no banco de dados do aplicativo.
Passo 4: Navegue de volta para a página System → Users → Groups (ou peça a qualquer outro usuário para visitá-la). O script injetado é executado automaticamente no navegador, conforme mostrado abaixo:

Para mitigar esta vulnerabilidade, a equipe de desenvolvimento do Issabel PBX deve aplicar as seguintes correções:
Validação de Entrada: Validar rigorosamente todas as entradas fornecidas pelo usuário no lado do servidor. Rejeitar ou sanitizar valores que contenham caracteres especiais de HTML (<, >, ", ', &) em campos que não exigem formatação HTML.
Codificação de Saída: Ao renderizar dados armazenados de volta no navegador, aplicar codificação de saída sensível ao contexto (por exemplo, codificação de entidades HTML) para neutralizar qualquer marcação injetada. Como o Issabel PBX é baseado em PHP, use as funções nativas htmlspecialchars() ou htmlentities() em vez de filtragem personalizada.
Política de Segurança de Conteúdo (CSP): Implementar um cabeçalho HTTP de Content Security Policy estrito para limitar as origens a partir das quais os scripts podem ser executados. Uma CSP configurada corretamente pode impedir a execução de scripts injetados mesmo que a sanitização de entrada seja contornada.
Auditorias de Segurança Regulares: Realizar revisões de código e testes de penetração periódicos para identificar e corrigir vulnerabilidades de injeção em todo o aplicativo.
Estas informações são fornecidas apenas para fins educacionais e de pesquisa. O autor não é responsável por qualquer uso indevido destas informações. Sempre obtenha autorização formal por escrito antes de testar vulnerabilidades em qualquer sistema que você não possua.