Twig has a possible sandbox bypass
The advisory, in context
Description
Under some circumstances, the sandbox security checks are not run which allows user-contributed templates to bypass the sandbox restrictions.
The security issue happens when all these conditions are met:
- The sandbox is disabled globally;
- The sandbox is enabled via a sandboxed
include()function which references a template name (likeincluded.twig) and not aTemplateorTemplateWrapperinstance; - The included template has been loaded before the
include()call but in a non-sandbox context (possible as the sandbox has been globally disabled).
Resolution
The patch ensures that the sandbox security checks are always run at runtime.
Credits
We would like to thank Fabien Potencier for reporting and fixing the issue.
Affected packages
Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.
From 1.0.0 before 1.44.8
Fixed in 1.44.8
114 explicitly affected versions
1.3.0, 1.4.0, 1.5.0, 1.5.1, 1.6.0, 1.6.1, 1.6.2, 1.6.3, 1.6.4, 1.6.5, v1.10.0, v1.10.1, v1.10.2, v1.10.3, v1.11.0, v1.11.1, v1.12.0, v1.12.0-RC1, v1.12.1, v1.12.2, v1.12.3, v1.13.0, v1.13.1, v1.13.2, v1.14.0, v1.14.1, v1.14.2, v1.15.0, v1.15.1, v1.16.0, v1.16.1, v1.16.2, v1.16.3, v1.17.0, v1.18.0, v1.18.1, v1.18.2, v1.19.0, v1.20.0, v1.21.0, v1.21.1, v1.21.2, v1.22.0, v1.22.1, v1.22.2, v1.22.3, v1.23.0, v1.23.1, v1.23.2, v1.23.3, v1.24.0, v1.24.1, v1.24.2, v1.25.0, v1.26.0, v1.26.1, v1.27.0, v1.28.0, v1.28.1, v1.28.2, v1.29.0, v1.30.0, v1.31.0, v1.32.0, v1.33.0, v1.33.1, v1.33.2, v1.34.0, v1.34.1, v1.34.2, v1.34.3, v1.34.4, v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v1.36.0, v1.37.0, v1.37.1, v1.38.0, v1.38.1, v1.38.2, v1.38.3, v1.38.4, v1.39.0, v1.39.1, v1.40.0, v1.40.1, v1.41.0, v1.42.0, v1.42.1, v1.42.2, v1.42.3, v1.42.4, v1.42.5, v1.43.0, v1.43.1, v1.44.0, v1.44.1, v1.44.2, v1.44.3, v1.44.4, v1.44.5, v1.44.6, v1.44.7, v1.7.0, v1.8.0, v1.8.1, v1.8.2, v1.8.3, v1.9.0, v1.9.1, v1.9.2
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "1.0.0"
},
{
"fixed": "1.44.8"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1.3.0",
"1.4.0",
"1.5.0",
"1.5.1",
"1.6.0",
"1.6.1",
"1.6.2",
"1.6.3",
"1.6.4",
"1.6.5",
"v1.10.0",
"v1.10.1",
"v1.10.2",
"v1.10.3",
"v1.11.0",
"v1.11.1",
"v1.12.0",
"v1.12.0-RC1",
"v1.12.1",
"v1.12.2",
"v1.12.3",
"v1.13.0",
"v1.13.1",
"v1.13.2",
"v1.14.0",
"v1.14.1",
"v1.14.2",
"v1.15.0",
"v1.15.1",
"v1.16.0",
"v1.16.1",
"v1.16.2",
"v1.16.3",
"v1.17.0",
"v1.18.0",
"v1.18.1",
"v1.18.2",
"v1.19.0",
"v1.20.0",
"v1.21.0",
"v1.21.1",
"v1.21.2",
"v1.22.0",
"v1.22.1",
"v1.22.2",
"v1.22.3",
"v1.23.0",
"v1.23.1",
"v1.23.2",
"v1.23.3",
"v1.24.0",
"v1.24.1",
"v1.24.2",
"v1.25.0",
"v1.26.0",
"v1.26.1",
"v1.27.0",
"v1.28.0",
"v1.28.1",
"v1.28.2",
"v1.29.0",
"v1.30.0",
"v1.31.0",
"v1.32.0",
"v1.33.0",
"v1.33.1",
"v1.33.2",
"v1.34.0",
"v1.34.1",
"v1.34.2",
"v1.34.3",
"v1.34.4",
"v1.35.0",
"v1.35.1",
"v1.35.2",
"v1.35.3",
"v1.35.4",
"v1.36.0",
"v1.37.0",
"v1.37.1",
"v1.38.0",
"v1.38.1",
"v1.38.2",
"v1.38.3",
"v1.38.4",
"v1.39.0",
"v1.39.1",
"v1.40.0",
"v1.40.1",
"v1.41.0",
"v1.42.0",
"v1.42.1",
"v1.42.2",
"v1.42.3",
"v1.42.4",
"v1.42.5",
"v1.43.0",
"v1.43.1",
"v1.44.0",
"v1.44.1",
"v1.44.2",
"v1.44.3",
"v1.44.4",
"v1.44.5",
"v1.44.6",
"v1.44.7",
"v1.7.0",
"v1.8.0",
"v1.8.1",
"v1.8.2",
"v1.8.3",
"v1.9.0",
"v1.9.1",
"v1.9.2"
]
}From 2.0.0 before 2.16.1
Fixed in 2.16.1
62 explicitly affected versions
v2.0.0, v2.1.0, v2.10.0, v2.11.0, v2.11.1, v2.11.2, v2.11.3, v2.12.0, v2.12.1, v2.12.2, v2.12.3, v2.12.4, v2.12.5, v2.13.0, v2.13.1, v2.14.0, v2.14.1, v2.14.10, v2.14.11, v2.14.12, v2.14.13, v2.14.2, v2.14.3, v2.14.4, v2.14.5, v2.14.6, v2.14.7, v2.14.8, v2.14.9, v2.15.0, v2.15.1, v2.15.2, v2.15.3, v2.15.4, v2.15.5, v2.15.6, v2.16.0, v2.2.0, v2.3.0, v2.3.1, v2.3.2, v2.4.0, v2.4.1, v2.4.2, v2.4.3, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0, v2.6.0, v2.6.1, v2.6.2, v2.7.0, v2.7.1, v2.7.2, v2.7.3, v2.7.4, v2.8.0, v2.8.1, v2.9.0
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "2.0.0"
},
{
"fixed": "2.16.1"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v2.0.0",
"v2.1.0",
"v2.10.0",
"v2.11.0",
"v2.11.1",
"v2.11.2",
"v2.11.3",
"v2.12.0",
"v2.12.1",
"v2.12.2",
"v2.12.3",
"v2.12.4",
"v2.12.5",
"v2.13.0",
"v2.13.1",
"v2.14.0",
"v2.14.1",
"v2.14.10",
"v2.14.11",
"v2.14.12",
"v2.14.13",
"v2.14.2",
"v2.14.3",
"v2.14.4",
"v2.14.5",
"v2.14.6",
"v2.14.7",
"v2.14.8",
"v2.14.9",
"v2.15.0",
"v2.15.1",
"v2.15.2",
"v2.15.3",
"v2.15.4",
"v2.15.5",
"v2.15.6",
"v2.16.0",
"v2.2.0",
"v2.3.0",
"v2.3.1",
"v2.3.2",
"v2.4.0",
"v2.4.1",
"v2.4.2",
"v2.4.3",
"v2.4.4",
"v2.4.5",
"v2.4.6",
"v2.4.7",
"v2.4.8",
"v2.5.0",
"v2.6.0",
"v2.6.1",
"v2.6.2",
"v2.7.0",
"v2.7.1",
"v2.7.2",
"v2.7.3",
"v2.7.4",
"v2.8.0",
"v2.8.1",
"v2.9.0"
]
}From 3.12.0 before 3.14.0
Fixed in 3.14.0
2 explicitly affected versions
v3.12.0, v3.13.0
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "3.12.0"
},
{
"fixed": "3.14.0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v3.12.0",
"v3.13.0"
]
}From 3.0.0 before 3.11.1
Fixed in 3.11.1
40 explicitly affected versions
v3.0.0, v3.0.1, v3.0.2, v3.0.3, v3.0.4, v3.0.5, v3.1.0, v3.1.1, v3.10.0, v3.10.1, v3.10.2, v3.10.3, v3.11.0, v3.2.1, v3.3.0, v3.3.1, v3.3.10, v3.3.2, v3.3.3, v3.3.4, v3.3.5, v3.3.6, v3.3.7, v3.3.8, v3.3.9, v3.4.0, v3.4.1, v3.4.2, v3.4.3, v3.5.0, v3.5.1, v3.6.0, v3.6.1, v3.7.0, v3.7.1, v3.8.0, v3.9.0, v3.9.1, v3.9.2, v3.9.3
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "3.0.0"
},
{
"fixed": "3.11.1"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v3.0.0",
"v3.0.1",
"v3.0.2",
"v3.0.3",
"v3.0.4",
"v3.0.5",
"v3.1.0",
"v3.1.1",
"v3.10.0",
"v3.10.1",
"v3.10.2",
"v3.10.3",
"v3.11.0",
"v3.2.1",
"v3.3.0",
"v3.3.1",
"v3.3.10",
"v3.3.2",
"v3.3.3",
"v3.3.4",
"v3.3.5",
"v3.3.6",
"v3.3.7",
"v3.3.8",
"v3.3.9",
"v3.4.0",
"v3.4.1",
"v3.4.2",
"v3.4.3",
"v3.5.0",
"v3.5.1",
"v3.6.0",
"v3.6.1",
"v3.7.0",
"v3.7.1",
"v3.8.0",
"v3.9.0",
"v3.9.1",
"v3.9.2",
"v3.9.3"
]
}References
- https://github.com/twigphp/Twig/security/advisories/GHSA-6j75-5wfj-gh66
- https://nvd.nist.gov/vuln/detail/CVE-2024-45411
- https://github.com/twigphp/Twig/commit/11f68e2aeb526bfaf638e30d4420d8a710f3f7c6
- https://github.com/twigphp/Twig/commit/2102dd135986db79192d26fb5f5817a566e0a7de
- https://github.com/twigphp/Twig/commit/41103dcdc2daab4c83cdd05b5b4fde5b7e41e635
- https://github.com/twigphp/Twig/commit/7afa198603de49d147e90d18062e7b9addcf5233
- https://github.com/FriendsOfPHP/security-advisories/blob/master/twig/twig/CVE-2024-45411.yaml
- https://github.com/twigphp/Twig
- https://symfony.com/blog/twig-security-release-possible-sandbox-bypass