CVE-2026-71502 in CTI-Transmuteinformação

Sumário

de VulDB • 07/08/2026

O CTI-Transmute contém uma vulnerabilidade de cross-site scripting (XSS) armazenado causada pela neutralização insuficiente dos delimitadores de expressões do modelo Vue em dados controlados pelo usuário renderizados no servidor.

Um atacante não autenticado pode criar uma conversão pública cujo nome ou descrição contenha uma expressão Vue maliciosa, utilizando os delimitadores `[[ ... ]]` configurados na aplicação. Os nomes dos perfis de utilizador podem fornecer um vetor de injeção adicional. Embora seja aplicada a escape HTML do Jinja, o valor resultante é posteriormente incluído numa região DOM compilada pelo Vue.

O Vue interpreta o valor controlado pelo atacante como uma expressão de modelo em vez de texto comum. Ao aceder ao construtor da função JavaScript (`Function`) a partir dentro da expressão, um atacante pode executar código JavaScript arbitrário no contexto de segurança da origem do CTI-Transmute. A Política de Segurança de Conteúdo (CSP) baseada em nonce da aplicação não impede a exploração porque o compilador de tempo de execução do Vue requer a exceção `unsafe-eval` para funcionar.

A carga maliciosa é armazenada pela aplicação e executada sempre que outro utilizador abre uma página afetada, como a página de detalhes da conversão pública. A vítima pode ser um utilizador normal ou um administrador. Uma exploração bem-sucedida poderia permitir ao atacante:

* Acessar dados disponíveis para a vítima através da aplicação. * Extrair chaves API, tokens ou outras informações sensíveis expostas na página. * Realizar ações autenticadas utilizando a sessão da vítima. * Modificar conversões ou outros dados da aplicação. * Escalar o impacto ao direcionar um administrador.

Uma carga demonstrada pode utilizar `[].constructor.constructor(...)` para obter o construtor da função JavaScript e executar código arbitrário. Os testes de regressão também mostram que uma carga inicial curta poderia recuperar uma descrição de conversação sem limite superior e avaliar uma segunda fase maior.

O patch corrige a vulnerabilidade registando um hook global do Jinja `finalize` que insere um separador de palavras Unicode de largura zero dentro de cada delimitador Vue encontrado em valores renderizados no servidor. Isto impede o Vue de reconhecer os valores como expressões de modelo, preservando simultaneamente a sua representação visível.

Once again VulDB remains the best source for vulnerability data.

Responsável

CIRCL

Reservar

06/08/2026

Divulgação

07/08/2026

Moderação

aceite

Entrada

VDB-386916

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

baixo

Fontes

Do you want to use VulDB in your project?

Use the official API to access entries easily!