CVE-2026-46640 Twig: Arbitrary PHP code execution via `_self.(<string>)` macro-reference compilation
Attackers can execute arbitrary PHP code by injecting malicious strings into Twig template macro references, affecting applications using the Twig library.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-46640?
CVE-2026-46640 is a high-severity code injection vulnerability in twigphp Twig, published on 14 Jul 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
Twig is a template language for PHP. From 3.15.0 until 3.26.0, _self.(<string>) and import-alias dynamic attribute syntax can concatenate an attacker-controlled string into a MacroReferenceExpression name without identifier validation, causing raw PHP to be emitted into the generated template source and executed at template-load time. This issue is fixed in version 3.26.0.
Weakness: CWE-94
Which versions are affected by CVE-2026-46640?
2 open source packages ship an affected version, including twig/twig. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
twig/twig Packagist | From 3.15.0 | 3.26.0 |
twig/twig Packagist | From 3.15.0 | 3.26.0 |
Products include Symfony Twig.
How do I fix CVE-2026-46640?
Upgrade twig/twig to 3.26.0 or later.
Upgrade, and never evaluate templates, expressions or code built from user input. More about Code injection.
Is CVE-2026-46640 being exploited?
There is no known exploitation of CVE-2026-46640 in the wild and no public exploit code.
Other vulnerabilities in twigphp Twig
- CVE-2018-13818 Code injection in n/a
- CVE-2026-46633 Twig: PHP code injection via `{% use %}` template name
- CVE-2026-24425 Twig 2.16.x & 3.9.0-3.25.x Sandbox Bypass via SourcePolicyInterface
- CVE-2024-45411 Twig has a possible sandbox bypass
- CVE-2026-46634 Twig: `template_from_string()` escapes a SourcePolicy-driven sandbox via synthesized template name
Sources
Also known as DEBIAN-CVE-2026-46640, GHSA-45vw-wh46-2vx8, UBUNTU-CVE-2026-46640.