
Discourseにおける画像ファイル名を介した保存型XSS - CVE-2024-52794
オープンソースのフォーラムプラットフォームである Discourse において、格納型クロスサイトスクリプティング (XSS) の脆弱性を発見しました。この脆弱性により、攻撃者はアップロードされた画像のファイル名に悪意のあるペイロードを埋め込むことで、被害者のブラウザ上で任意の JavaScript を実行できます。これは公開トピック、コメント、プライベートメッセージなど、複数のユーザー操作ベクトルに影響します。
画像をアップロードする際、ファイル名がフロントエンドで適切にサニタイズされずにレンダリングされます。ファイル名に JavaScript ペイロードが含まれている場合(例:)
<script>alert(document.domain)</script>
...ユーザーが画像をクリックするとそれが実行されます。これは以下に該当します:
脆弱なロジックは、img の alt 属性またはその周辺のマークアップからスクリプトタグをエンコードまたは除去できていませんでした。
document.cookie 経由)| Channel | Versions Affected |
|---|---|
| Stable | ≤ 3.3.2 |
| Beta | ≤ 3.4.0.beta3 |
| Tests-passed | ≤ 3.4.0.beta3 |
| Channel | Patched in Version |
|---|---|
| Stable | ≥ 3.3.3 |
| Beta | ≥ 3.4.0.beta4 |
| Tests-passed | ≥ 3.4.0.beta4 |
この問題は、ユーザーから提供されたファイル名を適切にサニタイズし、画像レンダリングコンポーネント内のすべての動的コンテンツをエスケープすることで対処されました。
| Date | Event |
|---|---|
| Nov 18, 2024 | 脆弱性を hackerone 経由で報告 |
| Dec 19, 2024 | CVE 発行: CVE-2024-52794 |
| Dec 19, 2024 | Discourse が公開アドバイザリを発表 |