{"id":"GHSA-7cvr-xhm5-x998","aliases":[],"status":"published","title":"Twig Path Traversal vulnerability in the filesystem loader","description":"Twig is affected by path traversal vulnerability when used with Twig_Loader_Filesystem for loading Twig templates but only if the application is using non-trusted template names (names provided by a end-user for instance).\n\nWhen affected, it is possible to go up one directory for the paths configured in the application's loader.\n\nFor instance, if the filesystem loader is configured with /path/to/templates as a path to look for templates, an attacker can force Twig to include a file stored in /path/to by prepending the path with /../ like in {% include \"/../somefile_in_path_to\" %}\n\nNote that using anything else (like ../somefile, /../../somefile, or ../../somefile) won’t work and the application will return a proper exception.","severity":{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","level":"medium","from":"ghsa"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-22"],"published":"2024-05-30T13:42:49Z","modified":"2024-12-05T05:41:41Z","fixes":[{"ecosystem":"Packagist","package":"twig/twig","fixed_in":["1.12.3"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Packagist","package":"twig/twig","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.0.0"},{"fixed":"1.12.3"}]}]},{"source":"osv","ecosystem":"Packagist","package":"twig/twig","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.0.0"},{"fixed":"1.12.3"}]}],"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.7.0","v1.8.0","v1.8.1","v1.8.2","v1.8.3","v1.9.0","v1.9.1","v1.9.2"]}],"references":[{"url":"https://github.com/fabpot/Twig/commit/3d19a2eed53570776af313593aaeb5ad62cf4980.diff","tags":["web"]},{"url":"https://github.com/FriendsOfPHP/security-advisories/blob/master/twig/twig/2013-04-08.yaml","tags":["web"]},{"url":"https://web.archive.org/web/20130511111630/http://blog.twig.sensiolabs.org/post/47461911874/security-release-twig-1-12-3-released","tags":["web"]},{"url":"https://github.com/advisories/GHSA-7cvr-xhm5-x998"},{"url":"https://github.com/twigphp/Twig","tags":["package"]}],"sources":{"ghsa":[{"id":"GHSA-7cvr-xhm5-x998","title":"Twig Path Traversal vulnerability in the filesystem loader","description":"Twig is affected by path traversal vulnerability when used with Twig_Loader_Filesystem for loading Twig templates but only if the application is using non-trusted template names (names provided by a end-user for instance).\n\nWhen affected, it is possible to go up one directory for the paths configured in the application's loader.\n\nFor instance, if the filesystem loader is configured with /path/to/templates as a path to look for templates, an attacker can force Twig to include a file stored in /path/to by prepending the path with /../ like in {% include \"/../somefile_in_path_to\" %}\n\nNote that using anything else (like ../somefile, /../../somefile, or ../../somefile) won’t work and the application will return a proper exception.\n","status":"published","published":"2024-05-30T13:42:49Z","modified":"2024-05-30T13:42:52Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","level":"medium"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:37:52.2286Z"}],"osv":[{"id":"GHSA-7cvr-xhm5-x998","title":"Twig Path Traversal vulnerability in the filesystem loader","description":"Twig is affected by path traversal vulnerability when used with Twig_Loader_Filesystem for loading Twig templates but only if the application is using non-trusted template names (names provided by a end-user for instance).\n\nWhen affected, it is possible to go up one directory for the paths configured in the application's loader.\n\nFor instance, if the filesystem loader is configured with /path/to/templates as a path to look for templates, an attacker can force Twig to include a file stored in /path/to by prepending the path with /../ like in {% include \"/../somefile_in_path_to\" %}\n\nNote that using anything else (like ../somefile, /../../somefile, or ../../somefile) won’t work and the application will return a proper exception.\n","status":"published","published":"2024-05-30T13:42:49Z","modified":"2024-12-05T05:41:41.920078Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","level":"medium"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:46:41.002603Z"}]}}
