CVE-2024-51754
Twig has unguarded calls to `__toString()` when nesting an object into an array
Impact
### Description In a sandbox, an attacker can call `__toString()` on an object even if the `__toString()` method is not allowed by the security policy when the object is part of an array or an argument list (arguments to a function or a filter for instance). ### Resolution The sandbox mode now checks the `__toString()` method call on all objects. The patch for this issue is available [here](https://github.com/twigphp/Twig/commit/cafc608ece310e62a35a76f17e25c04ab9ed05cc) for the 3.11.x branch, and [here](https://github.com/twigphp/Twig/commit/d4a302681bca9f7c6ce2835470d53609cdf3e23e) for the 3.x branch. ### Credits We would like to thank Jamie Schouten for reporting the issue and Fabien Potencier for providing the fix.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| composer | twig/twig | < 3.11.2 | 3.11.2 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/twigphp/Twig/commit/2bb8c2460a2c519c498df9b643d5277117155a73
- https://github.com/twigphp/Twig/security/advisories/GHSA-6377-hfv9-hqf6
- https://lists.debian.org/debian-lts-announce/2025/05/msg00039.html
- https://github.com/advisories/GHSA-6377-hfv9-hqf6
- https://nvd.nist.gov/vuln/detail/CVE-2024-51754
- https://github.com/FriendsOfPHP/security-advisories/blob/master/twig/twig/CVE-2024-51754.yaml
- https://symfony.com/blog/unguarded-calls-to-__tostring-when-nesting-an-object-into-an-array