GitHub Advisoryadvisory · Packagist

GHSA-5j3w-5pcr-f8hg Symfony UX allows unsanitized HTML attribute injection via ComponentAttributes

MEDIUM Published 2025-05-19 Modified 2025-08-29 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