Executive brief
Twig is a popular template engine for PHP used to generate HTML and other web content. A security flaw in its "sandbox" mode—a feature designed to safely run untrusted code—allows users to bypass security restrictions and execute unauthorized internal functions. This could allow an attacker with template editing permissions to access sensitive data or trigger unintended actions on the server.
Technical details
A vulnerability in Twig's sandbox mode allows for a policy bypass when handling Traversable objects. The sandbox's __toString() checks failed to recurse into Traversable values passed to the 'join' and 'replace' filters, or operands used with 'in' and 'not in' operators. This allows Stringable objects contained within these structures to be coerced into strings without the SecurityPolicy consulting the allowed methods list. An attacker with the ability to author sandboxed templates can exploit this to call disallowed __toString() methods on objects within the render context, potentially leading to information disclosure or side-channel attacks. The issue is resolved in version 3.27.0 by ensuring the sandbox recurses into Traversable operands to validate them against the security policy.
Affected products
- twigphp Twig < 3.27.0
Timeline
- 2026-05-27: patched: Version 3.27.0 released
- 2026-05-27: advisory: GitHub Security Advisory published
- 2026-07-14: disclosed: CVE published to NVD