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.
Published: 2026-07-14
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

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. The result is that raw PHP code is injected into the generated template source and executed when the template is rendered, giving the attacker full code execution on the host. This is a code-injection flaw (CWE-94). Attackers could use this to exfiltrate data, deface the application, or launch further internal attacks. The issue is fixed in Twig 3.26.0.

Affected Systems

Twig, the widely used PHP templating engine, is affected. Any installation using a non-patched version between 3.15.0 and 3.26.0 is vulnerable. The CNA identified Twig as the affected product, and no other vendors are listed.

Risk and Exploitability

The base CVSS score of 8.7 signals a high-severity flaw, yet the EPSS score of less than 1 % indicates a low global exploitation probability as of now. The vulnerability is not yet catalogued in CISA KEV. Attackers can exploit this by supplying a malicious template containing a crafted _self.(…) macro reference, so the attack vector is the template rendering path. Successful exploitation requires that the application load user-controlled template content or otherwise allow arbitrary template injection.

Generated by OpenCVE AI on July 31, 2026 at 04:34 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Twig to at least version 3.26.0, which eliminates the advisory by validating macro reference names.
  • If an upgrade is not immediately possible, reject or sanitize any user-supplied template data that contains dynamic macro references or import-aliases.
  • Disable dynamic attribute syntax in Twig configuration or enforce a policy that rejects undefined macros, thereby preventing the construction of macro references from attacker-controlled input.

Generated by OpenCVE AI on July 31, 2026 at 04:34 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DSA Debian DSA DSA-6311-1 php-twig security update
Github GHSA Github GHSA GHSA-45vw-wh46-2vx8 Twig: Arbitrary PHP code execution via `_self.(<string>)` macro-reference compilation
History

Wed, 15 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 15 Jul 2026 15:15:00 +0000

Type Values Removed Values Added
First Time appeared Twigphp
Twigphp twig
Vendors & Products Twigphp
Twigphp twig

Tue, 14 Jul 2026 21:45:00 +0000

Type Values Removed Values Added
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.
Title Twig: Arbitrary PHP code execution via `_self.(<string>)` macro-reference compilation
Weaknesses CWE-94
References
Metrics cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-16T03:55:34.985Z

Reserved: 2026-05-15T20:11:54.584Z

Link: CVE-2026-46640

cve-icon Vulnrichment

Updated: 2026-07-15T14:32:34.041Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T04:45:17Z

Weaknesses
  • CWE-94

    Improper Control of Generation of Code ('Code Injection')