GHSA-hhg7-c65m-h7ff / CVE-2026-45753
この脆弱性で確認すること
- 対象製品
- symfony/html-sanitizer / symfony/symfony
- WATRIXで確認できる範囲
- 利用製品・バージョン・設定を確認し、影響調査や対策の進め方をご相談いただけます。掲載だけで自動診断や復旧の対応を保証するものではありません。
- 情報の作成方法
- 収集した原典情報
情報整理:WATRIX合同会社。影響の確定や侵害の有無は、実際の版・設定・ログ等を確認して判断します。
- CVSS
- 1.2
- 公開元の公表日時
- 2026/05/29 1:43
- 公開元の更新日時
- 2026/05/29 1:43
- 当サイトの収集処理
- 2026/11/07 0:00
原典の説明
公開元の記載です。日本語での確認手順・対処の解説が付いていない項目も含まれます。
Symfony's HtmlSanitizer UrlAttributeSanitizer Omits action/formaction/poster/cite — `javascript`: URI Survives Sanitization (XSS)
### Description `symfony/html-sanitizer` lets applications sanitise untrusted HTML. `UrlAttributeSanitizer` is the visitor responsible for validating URL-valued attributes and stripping dangerous schemes from them; it runs on every element regardless of configuration. Whether an attribute is *kept* is decided by the element/attribute allow-list; validating the *scheme* of a URL attribute is solely `UrlAttributeSanitizer`'s responsibility. `UrlAttributeSanitizer::getSupportedAttributes()` returned only `['src', 'href', 'lowsrc', 'background', 'ping']`. The HTML URL-valued attributes `action` (`<form>`), `formaction` (`<button>`, `<input type=image>`), `poster` (`<video>`) and `cite` (`<blockquote>`, `<q>`, `<del>`, `<ins>`) were missing from that list, so `DomVisitor` never invoked scheme validation for them. As a result, when a configuration admits one of those attributes, a `javascript:` URI in it survived sanitisation. ### Conditions for exploitation `allowSafeElements()` is **not** affected: `<form>` and the `formaction` attribute are both flagged unsafe in `W3CReference`, and `allowElement('form')` resets the element's attribute list. Reaching the vulnerable attributes requires a deliberately permissive configuration, for example: * `<form>` + `action`: `allowElement('form', '*')`, `allowElement('form', ['action', …])`, `allowElement('form')->allowAttribute('action', 'form')`, or the `allowStaticElements()` preset (whose docblock already warns the output "may still contain other dangerous behaviors"); * `<button>` / `<input type=image>` + `formaction`: `allowElement(…, '*')`, `allowAttribute('formaction', …)`, or `allowStaticElements()`; * `<blockquote>` / `<q>` / `<del>` / `<ins>` + `cite`, or `<video>` + `poster`: similarly via `'*'`, `allowAttribute()`, or `allowStaticElements()`. For the `action` / `formaction` cases the victim must additionally submit the form or click the button. ### Resolution `UrlAttributeSanitizer` now also handles `action`, `formaction`, `cite` and `poster`. `action` / `formaction` / `cite` are validated against the link schemes (like `<a href>`, so `javascript:` is rejected and `data:` is dropped too); `poster` is validated against the media schemes (so `data:` images keep working). The behaviour of `<a href>` and `<img src>` is unchanged. One behaviour change to be aware of: a relative `action="/submit"` on an allowed `<form>` is now dropped by default (the same as `<a href>` / `<img src>` today); `->allowRelativeLinks()` re-enables it. The patch for this issue is available [here](https://github.com/symfony/symfony/commit/26a598fcfc4f903cc55ff202f642ee621839825e) for branch 6.4. ### Credits Symfony would like to thank Himanshu Anand and Rémi Pelloux for reporting the issue and Nicolas Grekas for providing the fix.
出典・著作権・ライセンスを確認する
- 出典
GitHub Advisory Database
- 利用許諾
CC-BY-4.0
- 利用条件
当サイトでの保存履歴
当サイトが取得した原本の履歴です。公開元での過去の改訂日時とは異なります。
初回保存のみです。訂正前の版はまだありません。
現在の保存内容2026/10/31 17:00
掲載中修正版あり
このページは公表情報を確認するためのデータです。製品を使っているだけで被害や脆弱性への該当が確定するものではありません。現在のバージョン、設定条件、開発元の更新情報を確認してください。

