私たちはDiscourseフォーラムを運営しており、onebox / allowed_onebox_iframes メカニズムを介したコードインジェクションの脆弱性に関する外部からの報告を受けました。対応を取る前に、コミュニティやチームの皆さんに、現在稼働しているDiscourseで報告された動作が実際に可能かどうかを確認していただきたく思います。
報告書には以下が記載されています:
- Discourseは、改行された単一のURLをonebox化し、ページ内の
twitter:playerをiframeとしてすべての閲覧者に埋め込みます。 - iframeのホワイトリストにおけるオリジンマッチングは「プレフィックスのみ」で行われるため、
www.youtube.com.attacker.exampleのようなホストは正当なYouTube埋め込みとして受け入れられ、攻撃者が制御するHTMLを提供することが可能になります。 - デフォルトの
allowed_onebox_iframesは事実上ワイルドカードとなっています。
私の理解では、(a) Discourseはホワイトリストに登録されたiframeホストをプレフィックスではなくドメイン境界でマッチングし、(b) デフォルトのonebox iframeホワイトリストは * ではなく厳選されたプロバイダーリストである、というものです。現在バージョンにおける allowed_onebox_iframes のホストマッチングがどのように機能するか、また報告されたようなサブドメインサフィックスのトリックが実際にバリデーションを通過し得るかどうか、誰か確認していただけますか?
私たちはDiscourseバージョン v2026.8.0-latest を使用しています。セキュリティチームにとって有益であれば、生の報告書を非公開で共有することも可能です。
よろしくお願いいたします。