Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-9811 — CVE-2026-9811 is a Stored Cross-Site Scripting (Stored XSS) vulnerability affecting Mautic 7 (versions 7.0.0 through 7.1.1). | Kitploit
ツール/GitHubGitHub/aj2108/cve-2026-9811
Vulnerability AnalysisWeb Application ExploitationWeb SecurityLearning & Education
GitHubaj2108/cve-2026-9811

CVE-2026-9811

CVE-2026-9811 is a Stored Cross-Site Scripting (Stored XSS) vulnerability affecting Mautic 7 (versions 7.0.0 through 7.1.1).

リポジトリを見る
17日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-9811

CVE-2026-9811は、Mautic 7(バージョン7.0.0から7.1.1まで)に影響を与える格納型クロスサイトスクリプティング(Stored XSS)の脆弱性です。この脆弱性はProject Selectorコンポーネントに存在し、AJAXリクエストで返されたプロジェクト名が、適切な出力エンコーディングやサニタイズなしにページに挿入されます。プロジェクトを作成する権限を持つ認証済みユーザーは、プロジェクト名に悪意のあるJavaScriptペイロードを格納できます。その後、別の管理者がプロジェクトセレクタを含むエンティティエディタを開くと、悪意のあるスクリプトがそのブラウザで実行されます。

影響を受けるソフトウェア

プロパティ 値 製品 Mautic 影響を受けるバージョン 7.0.0 – 7.1.1 修正バージョン 7.1.2 コンポーネント Project Selector 脆弱性の種類 格納型クロスサイトスクリプティング(XSS)

脆弱性の種類

カテゴリ: 格納型クロスサイトスクリプティング(Stored XSS) CWE-79: Webページ生成時の入力の不適切な無害化('クロスサイトスクリプティング')

根本原因

このアプリケーションは、認証済みユーザーが指定したプロジェクト名を保存し、後でAJAXエンドポイントを通じて取得します。プロジェクトセレクタをレンダリングする際、アプリケーションはこれらの値をエスケープやサニタイズを行わずに、HTMLのoption要素としてDOMに直接挿入します。

概念的には次のようになります:

root@kitploit:~
ユーザーがプロジェクトを作成
        │
        ▼
プロジェクト名がデータベースに保存される
        │
        ▼
AJAXがプロジェクト名を返す
        │
        ▼
サニタイズなしでDOMに挿入される
        │
        ▼
ブラウザが埋め込まれたJavaScriptを実行する

アプリケーションが保存済みデータを信頼しているため、別の特権ユーザーが脆弱なページを読み込むたびに、悪意のあるJavaScriptが実行されます。

攻撃の流れ

root@kitploit:~
攻撃者
    │
    ▼
悪意のあるJavaScriptペイロードを名前に含むプロジェクトを作成する
    │
    ▼
ペイロードがデータベースに保存される
    │
    ▼
管理者がエンティティエディタを開く
    │
    ▼
AJAXリクエストがプロジェクト名を取得する
    │
    ▼
アプリケーションがプロジェクト名をエンコーディングなしでDOMに挿入する
    │
    ▼
ブラウザが悪意のあるスクリプトを実行する
    │
    ▼
攻撃者が管理者のセッション内で操作を実行する

攻撃シナリオ

プロジェクト作成権限を持つ攻撃者は、名前欄に悪意のあるJavaScriptペイロードを含むプロジェクトを作成します。

その後、管理者がProject Selectorを含む別のエンティティを編集します。セレクタはAJAX経由でプロジェクト名を読み込み、それらをページに直接挿入します。プロジェクト名がサニタイズされていないため、ブラウザは管理者の権限で埋め込まれたスクリプトを実行します。

例

ステップ1: 通常のプロジェクト作成

Mauticに次のようなフォームがあるとします:

root@kitploit:~
POST /projects/create HTTP/1.1
Content-Type: application/x-www-form-urlencoded

projectName=Marketing Campaign
description=Email Campaign

プロジェクトは次のように保存されます:

Marketing Campaign
ステップ2: 攻撃者がプロジェクトを作成する

通常の名前の代わりに、攻撃者は無害なJavaScriptイベントを含むHTMLを入力します:

root@kitploit:~
POST /projects/create HTTP/1.1
Content-Type: application/x-www-form-urlencoded

projectName=<img src="https://raw.githubusercontent.com/aj2108/cve-2026-9811/HEAD/x" onerror="console.log('XSS Demo')">
description=Test

データベースには、その文字列がそのまま保存されます。

ステップ3: AJAXが保存された値を返す

その後、管理者がプロジェクトを読み込むページを開きます。

AJAXレスポンス:

root@kitploit:~
{
    "id": 7,
    "projectName": ""
}

ステップ4: 脆弱なJavaScript

アプリケーションが次のことを行うとします:

root@kitploit:~
const project = response.projectName;

document.getElementById("projects").innerHTML +=
    `<option>${project}</option>`;

ブラウザは次のように解釈します:

root@kitploit:~
<option>
    <img src="https://raw.githubusercontent.com/aj2108/cve-2026-9811/HEAD/x" onerror="console.log('XSS Demo')">
</option>

アプリケーションが文字列をテキストではなくHTMLとして挿入したため、ブラウザはこれを実際の要素として解析します。画像の読み込みに失敗するため(src="x")、onerrorハンドラが実行されます。

影響

攻撃に成功すると、攻撃者は以下を行う可能性があります:

  • 別のユーザーのブラウザで任意のJavaScriptを実行する。
  • 管理者のセッションを乗っ取る。
  • 管理者に代わって操作を実行する。
  • 機密性の高いダッシュボード情報にアクセスする。
  • 被害者の権限を使用してアプリケーションデータを変更する。
本脆弱性は主に機密性と完全性に影響を与えます。

深刻度

メトリクススコア
CVSS v3.1 (CNA)5.4(中)

NVDはこのCVEに関する独自のCVSS評価をまだ公開していません。

概念的な脆弱コード

注記: ベンダーは正確な脆弱なソースコードを公開していません。以下の例は脆弱性のパターンのみを示しています。

root@kitploit:~
// Data returned from AJAX
const project = response.projectName;

// Unsafe: inserted directly into the DOM
document.getElementById("projectSelector").innerHTML +=
    `<option>${project}</option>`;

なぜ脆弱なのか

プロジェクト名はユーザー入力に由来しますが、HTMLエンコーディングなしでページに挿入されます。保存された値にHTMLやJavaScriptが含まれている場合、ブラウザはそれをプレーンテキストではなく実行可能なコンテンツとして解釈します。

修正済みコード(概念的)

root@kitploit:~
const option = document.createElement("option");

// Safe: assign as text, not HTML
option.textContent = response.projectName;

document.getElementById("projectSelector").appendChild(option);

または、HTML出力が避けられない場合は、挿入前に適切な出力エンコーディングを確保してください。

なぜこの修正で解決するのか

textContent(または同等の安全なAPI)を使用することで、特殊文字が実行可能なHTMLやJavaScriptではなくプレーンテキストとして扱われるようになります。悪意のあるプロジェクト名がデータベースに保存されていても、実行されるのではなく文字通り表示されます。

ツールをダウンロード