📂 CKFinder 1.4.3 – 悪意のあるSVGアップロードによる保存型クロスサイトスクリプティング(XSS)
CVE ID: CVE-2025-63830
🧭 概要
保存型クロスサイトスクリプティング(XSS)の脆弱性が CKFinder v1.4.3 で確認されました。
この問題はファイルアップロード機能にあり、アクティブコンテンツを含むSVGファイルを適切にサニタイズできないことに起因します。
その結果、攻撃者は、アップロードされたファイルが表示またはプレビューされるときに、被害者のブラウザのコンテキストで任意のJavaScriptコードを実行できます。
⚙️ 詳細
- 発見名: 悪意のあるSVGアップロードによる保存型クロスサイトスクリプティング(XSS)
- 深刻度: 高
- CVE ID: CVE-2025-63830
- 影響を受けるコンポーネント: ファイルアップロード機能
- 影響を受ける製品: CKFinder v1.4.3
- ベンダー: CKSource Holding sp. z o.o.
- 攻撃タイプ: リモート
🧾 説明
CKFinder v1.4.3は、ファイルアップロード機能に保存型クロスサイトスクリプティング(XSS)の脆弱性があります。
JavaScriptコードを含む細工されたSVGファイルをアップロードすると、そのファイルが後でアプリケーションでアクセスまたはプレビューされたときに、永続的なスクリプト実行が発生します。
これは、SVGファイルがそのまま保存・配信されるためで、埋め込まれた<script>タグ、イベントハンドラ(例: onload、onclick)、または<foreignObject>要素がアプリケーションのオリジンコンテキストで実行される可能性があります。
🧪 再現手順
- CKFinder v1.4.3と統合されたアプリケーションにログインします。
- ファイルアップロード機能に移動します。
- 次の悪意のあるSVGファイルをアップロードします:
- アップロード後、CKFinderファイルマネージャーまたはリンクされた任意のビューからファイルにアクセスまたはプレビューします。
- ブラウザでのJavaScriptの実行を確認します。
🎯 影響 / リスク
- 被害者のブラウザでの任意のJavaScriptの実行。
- セッショントークンや機密情報の窃取。
- DOM操作または悪意のあるWebサイトへのリダイレクト。
- 管理インターフェース内での潜在的なラテラルムーブメント。
🛡️ 対策
- アップロードされたSVGファイルを保存・レンダリングする前にサニタイズおよび検証します。
- 不要な場合はSVGアップロードを無効化します。
- SVGアップロードが必要な場合:
- レンダリング前に安全なSVGサニタイザー(例: DOMPurify、SVG-Sanitizer)を使用します。
- アップロードされたSVGを安全なレスポンスヘッダーで配信します:
Content-Type: image/svg+xml; charset=UTF-8
Content-Disposition: attachment
X-Content-Type-Options: nosniff
- ユーザーがアップロードしたファイルを別のドメインまたはCDNでホストし、オリジンの分離を強制します。
- 最新バージョンにアップグレードします。新しいバージョンには、改善されたファイルサニタイズとセキュリティ処理が含まれる場合があります。
概念実証
👤 発見者
Shubham Ghadge
セキュリティリサーチャー / アプリケーションセキュリティコンサルタント