CVE-2026-46628 Twig: The `spaceless` filter implicitly marks its output as safe

Medium 5.1 Published Updated

Attacker-controlled markup is rendered unescaped when using the spaceless filter, enabling Cross-Site Scripting attacks in Twig templates.

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

What is CVE-2026-46628?

CVE-2026-46628 is a medium-severity cross-site scripting vulnerability in twigphp Twig, published on 14 Jul 2026. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.

Official description

Twig is a template language for PHP. Prior to 3.26.0, the deprecated spaceless filter is registered as safe for HTML, causing Twig autoescaping to emit attacker-controlled markup unescaped when spaceless is applied to untrusted input. This issue is fixed in version 3.26.0.

Weakness: CWE-116

Which versions are affected by CVE-2026-46628?

2 open source packages ship an affected version, including twig/twig. It affects 1 product.

PackageAffectedFixed in
twig/twig PackagistAll versions3.26.0
twig/twig PackagistAll versions3.26.0

Products include Symfony Twig.

How do I fix CVE-2026-46628?

Upgrade twig/twig to 3.26.0 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-2026-46628 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-46628 exists.

Sources

Also known as DEBIAN-CVE-2026-46628, GHSA-4j38-f5cw-54h7, UBUNTU-CVE-2026-46628.

Is CVE-2026-46628 in your software?

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

Check your SBOMs for free