Description
Twig is a template language for PHP. Prior to 3.26.0, Compiler::string() does not escape single quotes when a template name from a {% use %} tag is placed inside a PHP single-quoted string literal, allowing a crafted template name to terminate the string and inject arbitrary PHP expressions into the compiled cache file. 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's Compiler::string() does not escape single quotes when a template name from a {% use %} tag is placed inside a PHP single‑quoted string literal. This allows a crafted template name to terminate the string and inject arbitrary PHP expressions into the compiled cache file. The flaw is fixed in version 3.26.0, but versions prior to that remain vulnerable. An attacker who can influence the template name can inject and execute arbitrary PHP code in the application, constituting a code‑injection vulnerability identified as CWE‑94 that can result in remote code execution depending on the PHP process privileges.

Affected Systems

Twig template engine, developed by twigphp:Twig, is affected. All versions preceding 3.26.0 are vulnerable, including Twig 3.x releases. The vulnerability is fixed in Twig 3.26.0 and later releases. Applications that embed Twig and allow user‑controlled template names via {% use %} are directly impacted.

Risk and Exploitability

Security assessment of this issue yields a CVSS score of 8.7 and an EPSS probability of less than 1 %, indicating that while the flaw is severe, actual exploitation is currently rare. The vulnerability is not listed in CISA's KEV catalog. Exploitation requires an attacker to supply a malicious template name to the {% use %} tag, which typically implies that the attacker can influence template rendering or upload a template. The attack surface is therefore limited to applications that expose dynamic template names or allow arbitrary user input to be interpreted as a template name. Once an attacker succeeds, they can execute arbitrary PHP code with the permissions of the web server or PHP process, posing a critical threat to application integrity.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Twig to version 3.26.0 or later, which includes a fix for the compiler string escaping issue.
  • Clear or delete existing compiled cache files so that the updated Twig code runs without legacy compromised cache entries.
  • Restrict the use of dynamic template names in {% use %} tags by implementing input validation or a whitelist of allowed template identifiers.

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

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DSA Debian DSA DSA-6311-1 php-twig security update
Debian DSA Debian DSA DSA-6320-1 php-twig security update
Github GHSA Github GHSA GHSA-7p85-w9px-jpjp Twig: PHP code injection via `{% use %}` template name
History

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

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

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'}


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

Type Values Removed Values Added
Description Twig is a template language for PHP. Prior to 3.26.0, Compiler::string() does not escape single quotes when a template name from a {% use %} tag is placed inside a PHP single-quoted string literal, allowing a crafted template name to terminate the string and inject arbitrary PHP expressions into the compiled cache file. This issue is fixed in version 3.26.0.
Title Twig: PHP code injection via `{% use %}` template name
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:36.587Z

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

Link: CVE-2026-46633

cve-icon Vulnrichment

Updated: 2026-07-15T14:30:04.279Z

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')