
CVE-2026-9806 é uma vulnerabilidade de Cross-Site Scripting Armazenado (Stored XSS) que afeta as versões do CTI Transmute anteriores à versão corrigida.
CVE-2026-9806 é uma vulnerabilidade de Cross-Site Scripting Armazenado (Stored XSS) que afeta o CTI Transmute em versões anteriores à versão corrigida. A falha existe no painel de notificações, onde mensagens de notificação contendo nomes de conversão controlados pelo usuário são renderizadas no menu suspenso do sino de notificações usando innerHTML sem sanitização adequada. Se um atacante puder criar ou influenciar um nome de conversão que apareça em uma notificação, JavaScript arbitrário poderá ser executado no navegador de um usuário autenticado quando ele abrir o painel de notificações.
O painel de notificações constrói as entradas de notificação usando innerHTML. As mensagens de notificação incluem nomes de conversão, que são controlados pelo usuário. Como esses valores são inseridos diretamente no DOM sem codificação HTML ou sanitização, qualquer HTML ou JavaScript contido em um nome de conversão é interpretado pelo navegador.
Conceitualmente:
Attacker creates or influences a convert name
│
▼
Convert name stored in notification
│
▼
User opens notification panel
│
▼
Notification rendered using innerHTML
│
▼
Browser parses HTML
│
▼
Embedded JavaScript executes
A vulnerabilidade é causada pela renderização de entrada não confiável como HTML, em vez de texto simples.
Attacker
│
▼
Creates or modifies a malicious convert name
│
▼
Notification containing the convert name is generated
│
▼
Victim opens notification panel
│
▼
Notification dropdown inserts message using innerHTML
│
▼
Browser executes malicious JavaScript
│
▼
Actions performed within victim's authenticated session
Suponha que uma conversão seja criada com um nome especialmente elaborado contendo HTML.
Mais tarde, outro usuário autenticado recebe uma notificação referenciando essa conversão. Quando o usuário clica no sino de notificações, o aplicativo insere a mensagem de notificação na página usando innerHTML.
Em vez de exibir o nome da conversão como texto, o navegador o interpreta como HTML e executa o JavaScript embutido, permitindo que o atacante realize ações na sessão do navegador da vítima.
Um usuário legítimo cria uma conversão chamada:
Monthly Sales Report
O aplicativo a armazena no banco de dados.
Um atacante, em vez disso, insere um nome contendo HTML:
Quarterly Report <b>Important</b>
O aplicativo armazena:
Quarterly Report <b>Important</b>
Mais tarde, outro usuário recebe uma notificação como:
Convert "Quarterly Report <b>Important</b>" completed successfully.
Se o aplicativo fizer:
notification.innerHTML = response.message;
o navegador renderiza:
Conversão Quarterly Report Important concluída com sucesso.
porque é interpretado como HTML.
Se o aplicativo, em vez disso, usar:
notification.textContent = response.message;
o navegador exibe o texto literal:
Convert "Quarterly Report <b>Important</b>" completed successfully.
Nenhum HTML é interpretado.
A exploração bem-sucedida pode permitir que um atacante:
| Métrica | Pontuação |
|---|---|
| CVSS v4.0 (CNA) | 6.3 (Média) |
O NVD ainda não atribuiu sua própria avaliação CVSS.
Nota: O fornecedor não publicou o código-fonte vulnerável exato. O que segue demonstra o padrão vulnerável.
// User-controlled convert name
const message = response.notificationMessage;
// Unsafe rendering
notificationDropdown.innerHTML += `
<div class="notification">
${message}
</div>
`;
O innerHTML trata a mensagem de notificação como HTML. Se a mensagem contiver HTML ou JavaScript originado de um nome de conversão malicioso, o navegador a analisa e executa.
const notification = document.createElement("div");
notification.className = "notification";
// Safe rendering
notification.textContent = response.notificationMessage;
notificationDropdown.appendChild(notification);
O uso de textContent garante que a mensagem de notificação seja renderizada como texto simples, em vez de HTML. Conforme observado na remediação publicada, o problema foi corrigido construindo os elementos de notificação por meio de métodos DOM e atribuindo o conteúdo via textContent em vez de innerHTML, impedindo a execução de scripts embutidos.