Twig: Arbitrary PHP code execution via `_self.(<string>)` macro-reference compilation
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-94.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| symfony | Twig | 3.15.0 to before 3.26.0 | 3.26.0 | Patch available | CNA |
| — | twig/twig (Packagist) | 3.15.0 to before 3.26.0 | 3.26.0 | Patch available | GHSA-45vw-wh46-2vx8 |
- Twig Vendorsymfony Affected 3.15.0 to before 3.26.0 Fixed in 3.26.0 Patch available CNA
- twig/twig (Packagist) Vendor— Affected 3.15.0 to before 3.26.0 Fixed in 3.26.0 Patch available GHSA-45vw-wh46-2vx8
Remediation
- Fix · CNA Twig (twigphp) Fixed in 3.26.0
- Fix · GHSA-45vw-wh46-2vx8 twig/twig (Packagist) Fixed in 3.26.0 Advisory →
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2026-46640
- 2026-10-03 Alias added: GHSA-45vw-wh46-2vx8
- 2026-10-21 EPSS moved to the 50th–90th percentile
References
More symfony Twig vulnerabilities
- TI-2026-34283 Twig: The `spaceless` filter implicitly marks its output as safe CVSS 4.0MEDIUM 5.1
- TI-2022-07667 Code injection in Twig CVSS 3.1CRITICAL 9.8
- TI-2018-10028 Twig before 2.4.4 allows Server-Side Template Injection (SSTI) via the search search_key… CVSS 3.0CRITICAL 9.8
- TI-2022-18637 Twig may load a template outside a configured directory when using the filesystem loader CVSS 3.1HIGH 7.5
- TI-2026-34285 Twig: PHP code injection via `{% use %}` template name CVSS 4.0HIGH 8.7
- TI-2026-19691 Twig 2.16.x & 3.9.0-3.25.x Sandbox Bypass via SourcePolicyInterface CVSS 4.0HIGH 8.7
Sources
- CVE-2026-46640 · CVE Program
- CVE-2026-46640 · NVD
- FIRST EPSS
- GHSA-45vw-wh46-2vx8 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-46640 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences