
CVE-2026-9806 is a Stored Cross-Site Scripting (Stored XSS) vulnerability affecting CTI Transmute versions prior to the patched release.
CVE-2026-9806 は、パッチ適用済みリリースより前の CTI Transmute に影響する格納型クロスサイトスクリプティング(Stored XSS)の脆弱性です。この欠陥は通知パネルに存在し、ユーザー制御の変換名を含む通知メッセージが、適切なサニタイズなしに innerHTML を使用して通知ベルドロップダウン内にレンダリングされます。攻撃者が通知に表示される変換名を作成または操作できる場合、認証済みユーザーが通知パネルを開くと、任意の JavaScript がそのユーザーのブラウザで実行される可能性があります。
通知パネルは、innerHTML を使用して通知エントリを構築します。通知メッセージにはユーザー制御の変換名が含まれます。これらの値は HTML エンコードやサニタイズなしで直接 DOM に挿入されるため、変換名に含まれる HTML や JavaScript はブラウザによって解釈されます。
概念的には:
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
この脆弱性は、信頼できない入力をプレーンテキストとしてではなく HTML としてレンダリングすることによって引き起こされます。
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
HTML を含む特別に細工された名前で変換が作成されたとします。
その後、別の認証済みユーザーがその変換を参照する通知を受け取ります。ユーザーが通知ベルをクリックすると、アプリケーションは innerHTML を使用して通知メッセージをページに挿入します。
ブラウザは変換名をテキストとして表示する代わりに、それを HTML として解釈して埋め込まれた JavaScript を実行し、攻撃者が被害者のブラウザセッション内で操作を実行できるようにします。
正当なユーザーが次の名前の変換を作成します:
Monthly Sales Report
アプリケーションはそれをデータベースに保存します。
攻撃者は代わりに HTML を含む名前を入力します:
Quarterly Report <b>Important</b>
アプリケーションは次を保存します:
Quarterly Report <b>Important</b>
その後、別のユーザーが次のような通知を受け取ります:
Convert "Quarterly Report <b>Important</b>" completed successfully.
アプリケーションが次の処理を行う場合:
notification.innerHTML = response.message;
ブラウザは次のようにレンダリングします:
「Quarterly Report Important」の変換が正常に完了しました。
これは が HTML として解釈されるためです。
代わりにアプリケーションが次を使用する場合:
notification.textContent = response.message;
ブラウザは次のリテラルテキストを表示します:
Convert "Quarterly Report <b>Important</b>" completed successfully.
HTML は解釈されません。
悪用に成功すると、攻撃者は次のことを行える可能性があります:
| 指標 | スコア |
|---|
| CVSS v4.0 (CNA) | 6.3(中) |
NVD はまだ独自の CVSS 評価を割り当てていません。
注: ベンダーは正確な脆弱なソースコードを公開していません。以下は、脆弱なパターンを示したものです。
// User-controlled convert name
const message = response.notificationMessage;
// Unsafe rendering
notificationDropdown.innerHTML += `
<div class="notification">
${message}
</div>
`;
innerHTML は通知メッセージを HTML として扱います。メッセージに悪意のある変換名に由来する HTML や JavaScript が含まれている場合、ブラウザはそれを解析して実行します。
const notification = document.createElement("div");
notification.className = "notification";
// Safe rendering
notification.textContent = response.notificationMessage;
notificationDropdown.appendChild(notification);
textContent を使用することで、通知メッセージが HTML ではなくプレーンテキストとしてレンダリングされます。公開された修正情報にもあるように、この問題は、通知要素を DOM メソッドで構築し、innerHTML ではなく textContent でコンテンツを割り当てることで修正され、埋め込まれたスクリプトの実行を防ぎます。