CVE-2025-47946 Symfony UX allows unsanitized HTML attribute injection via ComponentAttributes

Medium 6.1 Published Updated

Attackers can inject malicious HTML attributes leading to XSS when rendering untrusted user input via Symfony UX component attributes.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
A user has to click or open something
Fix
Available

What is CVE-2025-47946?

CVE-2025-47946 is a medium-severity cross-site scripting vulnerability in symfony ux, published on 19 May 2025. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.

Official description

Symfony UX is an initiative and set of libraries to integrate JavaScript tools into applications. Prior to version 2.25.1, 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. The issue is fixed in version `2.25.1` of `symfony/ux-twig-component` Those who use `symfony/ux-live-component` must also update it to `2.25.1` to benefit from the fix, as it reuses the `ComponentAttributes` class internally. As a workaround, avoid rendering `{{ attributes }}` or derived objects directly if it may contain untrusted values. Instead, use `{{ attributes.render('name') }}` for safe output of individual attributes.

Weakness: CWE-79

Which versions are affected by CVE-2025-47946?

4 open source packages ship an affected version, including symfony/ux-live-component and symfony/ux-twig-component.

PackageAffectedFixed in
symfony/ux-live-component PackagistAll versions2.25.1
symfony/ux-live-component PackagistAll versions2.25.1
symfony/ux-twig-component PackagistAll versions2.25.1
symfony/ux-twig-component PackagistAll versions2.25.1

How do I fix CVE-2025-47946?

Upgrade symfony/ux-live-component to 2.25.1 or later.

Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.

Is CVE-2025-47946 being exploited?

There is no known exploitation of CVE-2025-47946 in the wild and no public exploit code.

Sources

Also known as GHSA-5j3w-5pcr-f8hg.

Is CVE-2025-47946 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free