GitHub Advisoryadvisory · Packagist
GHSA-5j3w-5pcr-f8hg Symfony UX allows unsanitized HTML attribute injection via ComponentAttributes
MEDIUM
Official page ↗
- Aliases
- CVE-2025-47946
- Ecosystem
- Packagist
- Packages
- symfony/ux-twig-component, symfony/ux-live-component
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
- Weaknesses
- CWE-79
- Reviewed
- 2025-05-19
Affected packages
• Packagist symfony/ux-twig-component: < 2.25.1 → fixed in 2.25.1
• Packagist symfony/ux-live-component: < 2.25.1 → fixed in 2.25.1
Description
Impact
Rendering `{{ attributes }}` or using any method that returns a `ComponentAttributes` instance (e.g. `only()`, `defaults()`, `without()`) ouputs attribute values directly without escaping. If these values are unsafe (e.g. contain user input), this can lead to HTML attribute injection and XSS vulnerabilities.
Patches
The issue is fixed in version `2.25.1` of `symfony/ux-twig-component` by using Twig's `EscaperRuntime` to properly escape HTML attributes in `ComponentAttributes`. If you use `symfony/ux-live-component`, you must also update it to `2.25.1` to benefit from the fix, as it reuses the `ComponentAttributes` class internally.
Workarounds
Until you can upgrade, avoid rendering `{{ attributes }}` or derived objects directly if it may contain untrusted values.
Instead, use `{{ attributes.render('name') }}` for safe output of individual attributes.
References
GitHub repository: symfony/ux
Related
Alias · CVE (1)
- CVE-2025-47946 Symfony UX is an initiative and set of libraries to integrate JavaScript tools into applications. vulnerability
Weakness · CWE (1)
- CWE-79 Improper Neutralization of Input During Web Page Generation weakness
References
- https://github.com/symfony/ux/security/advisories/GHSA-5j3w-5pcr-f8hg web
- https://nvd.nist.gov/vuln/detail/CVE-2025-47946 advisory
- https://github.com/symfony/ux-live-component/commit/7ad44cf56d750b9f56658ed986286a10da132ee7 web
- https://github.com/symfony/ux-twig-component/commit/b5d4e77db69315aeb18d2238e0e7c943d340ce76 web
- https://github.com/symfony/ux/commit/b5d1c85995c128cb926d47a96cfbfbd500b643a8 web
- https://github.com/symfony/ux/commit/c2f7738ee0969c31df7514025a7f5fc6e153932d web
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/ux-live-component/CVE-2025-47946.yaml web
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/ux-twig-component/CVE-2025-47946.yaml web
- https://github.com/symfony/ux package
- https://symfony.com/blog/symfony-ux-cve-2025-47946-unsanitized-html-attribute-injection-via-componentattributes web