
CVE-2026-9806 is a Stored Cross-Site Scripting (Stored XSS) vulnerability affecting CTI Transmute versions prior to the patched release.
CVE-2026-9806 ist eine Stored-Cross-Site-Scripting-Schwachstelle (Stored XSS), die CTI Transmute-Versionen vor dem Patch-Release betrifft. Der Fehler besteht im Benachrichtigungsbereich, in dem Benachrichtigungsnachrichten mit benutzerkontrollierten Convert-Namen im Dropdown der Benachrichtigungsglocke mithilfe von innerHTML ohne ordnungsgemäße Sanitisierung gerendert werden. Wenn ein Angreifer einen Convert-Namen erstellen oder beeinflussen kann, der in einer Benachrichtigung erscheint, kann beliebiges JavaScript im Browser eines authentifizierten Benutzers ausgeführt werden, sobald dieser den Benachrichtigungsbereich öffnet.
Der Benachrichtigungsbereich erstellt Benachrichtigungseinträge mithilfe von innerHTML. Benachrichtigungsnachrichten enthalten Convert-Namen, die benutzerkontrolliert sind. Da diese Werte ohne HTML-Codierung oder Sanitisierung direkt in das DOM eingefügt werden, interpretiert der Browser jedes HTML oder JavaScript, das in einem Convert-Namen enthalten ist.
Konzeptionell:
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
Die Schwachstelle entsteht dadurch, dass nicht vertrauenswürdige Eingaben als HTML statt als Klartext gerendert werden.
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
Angenommen, ein Convert wird mit einem speziell präparierten Namen erstellt, der HTML enthält.
Später erhält ein anderer authentifizierter Benutzer eine Benachrichtigung, die auf diesen Convert verweist. Wenn der Benutzer auf die Benachrichtigungsglocke klickt, fügt die Anwendung die Benachrichtigungsnachricht mithilfe von innerHTML in die Seite ein.
Statt den Convert-Namen als Text anzuzeigen, interpretiert der Browser ihn als HTML und führt das eingebettete JavaScript aus, wodurch der Angreifer Aktionen in der Browsersitzung des Opfers ausführen kann.
Ein legitimer Benutzer erstellt einen Convert mit dem Namen:
Monthly Sales Report
Die Anwendung speichert ihn in der Datenbank.
Ein Angreifer gibt stattdessen einen Namen ein, der HTML enthält:
Quarterly Report <b>Important</b>
Die Anwendung speichert:
Quarterly Report <b>Important</b>
Später erhält ein anderer Benutzer eine Benachrichtigung wie:
Convert "Quarterly Report <b>Important</b>" completed successfully.
Wenn die Anwendung Folgendes ausführt:
notification.innerHTML = response.message;
rendert der Browser:
Convert Quarterly Report Important erfolgreich abgeschlossen.
weil als HTML interpretiert wird.
Wenn die Anwendung stattdessen Folgendes verwendet:
notification.textContent = response.message;
zeigt der Browser den wörtlichen Text an:
Convert "Quarterly Report <b>Important</b>" completed successfully.
Es wird kein HTML interpretiert.
Eine erfolgreiche Ausnutzung kann einem Angreifer Folgendes ermöglichen:
| Metrik | Wert |
|---|
| CVSS v4.0 (CNA) | 6.3 (Medium) |
Die NVD hat noch keine eigene CVSS-Bewertung vergeben.
Hinweis: Der Anbieter hat den exakten verwundbaren Quellcode nicht veröffentlicht. Das Folgende veranschaulicht das verwundbare Muster.
// User-controlled convert name
const message = response.notificationMessage;
// Unsafe rendering
notificationDropdown.innerHTML += `
<div class="notification">
${message}
</div>
`;
innerHTML behandelt die Benachrichtigungsnachricht als HTML. Wenn die Nachricht HTML oder JavaScript aus einem bösartigen Convert-Namen enthält, parst und führt der Browser sie aus.
const notification = document.createElement("div");
notification.className = "notification";
// Safe rendering
notification.textContent = response.notificationMessage;
notificationDropdown.appendChild(notification);
Die Verwendung von textContent stellt sicher, dass die Benachrichtigungsnachricht als Klartext statt als HTML gerendert wird. Wie in der veröffentlichten Behebung vermerkt, wurde das Problem behoben, indem Benachrichtigungselemente über DOM-Methoden erstellt und Inhalte über textContent statt über innerHTML zugewiesen werden, wodurch die Ausführung eingebetteter Skripte verhindert wird.