GHSA-6377-hfv9-hqf6
Twig has unguarded calls to `__toString()` when nesting an object into an array
Packages
Details
As written in the advisory (Markdown source, shown as plain text).
### 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.
References
External links from the advisory. They lead to third-party sites.
- https://github.com/twigphp/Twig/security/advisories/GHSA-6377-hfv9-hqf6
- https://nvd.nist.gov/vuln/detail/CVE-2024-51754
- https://github.com/twigphp/Twig/commit/2bb8c2460a2c519c498df9b643d5277117155a73
- https://github.com/FriendsOfPHP/security-advisories/blob/master/twig/twig/CVE-2024-51754.yaml
- https://github.com/twigphp/Twig
- https://lists.debian.org/debian-lts-announce/2025/05/msg00039.html
- https://symfony.com/blog/unguarded-calls-to-__tostring-when-nesting-an-object-into-an-array