{"id":"CVE-2026-71291","summary":"Bolt CMS Server-Side Template Injection via Unsandboxed allow_twig Field Rendering","details":"Bolt CMS renders content field values through Twig's full application-level Environment with no SandboxExtension registered anywhere in the codebase. In src/Entity/Field.php, getTwigValue() calls shouldBeRenderedAsTwig(), which gates rendering only on the field definition's allow_twig flag and a regex checking for `{{`, `{%`, or `{#`; when true, the raw field value is compiled and rendered via `self::getTwig()-\u003ecreateTemplate($value)-\u003erender(['record' =\u003e $this-\u003egetContent()])` with no sandboxing. Bolt's own bundled config/bolt/contenttypes.yaml sets `allow_twig: true` on the default \"pages\" contenttype's content field out of the box. Any user with edit access to that content type (a standard editor role, not just an administrator) can inject a Twig payload such as `{{ ['id']|map('passthru')|join }}` that executes arbitrary OS commands when the content is saved and rendered, achieving remote code execution as the web server user.","modified":"2026-08-07T03:46:54.630337982Z","published":"2026-08-05T12:38:41.070Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/71xxx/CVE-2026-71291.json","cna_assigner":"TuranSec","cwe_ids":["CWE-1336"]},"references":[{"type":"WEB","url":"https://github.com/bolt/core/blob/6.1/src/Entity/Field.php"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/71xxx/CVE-2026-71291.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-71291"},{"type":"PACKAGE","url":"https://github.com/bolt/core"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/bolt/core","events":[{"introduced":"0"},{"last_affected":"9e4887c87b547924226496da8e0a5c6fd06980b8"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"last_affected":"6.1"}],"source":"AFFECTED_FIELD"}}],"versions":["6.1.0","6.0.3","6.0.2","6.0.1","6.0.0","6.0.0-rc.2","6.0.0-rc.1","6.0.0-beta.11","6.0.0-beta.10","6.0.0-beta.9","6.0.0-beta.8","6.0.0-beta.7","6.0.0-beta.6","6.0.0-beta.5","6.0.0-beta.3","6.0.0-beta.2","6.0.0-beta.1","5.2.2","5.2.1","5.2.0","5.2.0-rc.1","5.2.0-beta.26","5.2.0-beta.25","5.2.0-beta.24.1","5.2.0-beta.24","5.2.0-beta.23","5.2.0-beta.21","5.2.0-beta.22","5.2.0-beta.20","5.2.0-beta.17","5.2.0-beta.18.1","5.2.0-beta.18","5.2.0-beta.15.1","5.2.0-beta.12","5.2.0-beta.11","5.2.0-beta.10","5.2.0-beta.9","5.2.0-beta.8","5.2.0-beta.7","5.2.0-beta.6","5.2.0-beta.5","5.2.0-beta.4","5.1.7","5.2.0-beta.3","5.2.0-beta.2","5.2.0-beta.1","5.1.7-pl.1","5.1.5","5.1.6","5.1.4","5.1.3","5.1.2","5.1.1","5.1.0","5.1.0-beta.3","5.1.0-beta.2","5.1.0-beta.1","5.0.6","5.0.5","5.0.4","5.0.3","5.0.2","5.0.1","5.0.0","5.0.0-rc.2","5.0.0-rc.1","5.0.0-beta.14","5.0.0-beta.13","5.0.0-beta.12","5.0.0-beta.10","5.0.0-beta.9","5.0.0-beta.8","5.0.0-beta.7","5.0.0-beta.6.1","5.0.0-beta.6","5.0.0-beta.5","5.0.0-beta.4","5.0.0-beta.3","5.0.0-beta.2","5.0.0-beta.1.3","5.0.0-beta.1.2","5.0.0-beta.1.1","5.0.0-beta.1","4.2.0-beta.6","4.2.0-beta.5","4.2.0-beta.4","4.2.0-beta.3","4.2.0-beta.2","4.1.0","4.1.3","4.1.2","4.0.1","4.0.0","4.0.0-rc.44","4.0.0-rc.43","4.0.0-rc.42","4.0.0-rc.41","4.0.0-rc.40","4.0.0-rc.39","4.0.0-rc.37","4.0.0-rc.35","4.0.0-rc.34","4.0.0-rc.33","4.0.0-rc.32","4.0.0-rc.31","4.0.0-rc.29","4.0.0-rc.28","4.0.0-rc.27","4.0.0-rc.26","4.0.0-rc.25","4.0.0-rc.24","4.0.0-rc.23","4.0.0-rc.22","4.0.0-rc.21","4.0.0-rc.20","4.0.0-rc.19","4.0.0-rc.18","4.0.0-rc.17","4.0.0-rc.16","4.0.0-rc.15","4.0.0-rc.14","4.0.0-rc.13","4.0.0-rc.12","4.0.0-rc.11","4.0.0-rc.10","4.0.0-rc.9","4.0.0-rc.8","4.0.0-rc.7","4.0.0-rc.6","4.0.0-rc.5","4.0.0-rc.4","4.0.0-rc.3","4.0.0-rc.2","4.0.0-rc.1","4.0.0-beta.5.9","4.0.0-beta.5.8","4.0.0-beta.5.7","4.0.0-beta.5.6","4.0.0-beta.5.5","4.0.0-beta.5.4","4.0.0-beta.5.3","4.0.0-beta.5.2","4.0.0-beta.5.1","4.0.0-beta.5","4.0.0-beta.4.6","4.0.0-beta.4.5","4.0.0-beta.4.4","4.0.0-beta.4.3","4.0.0-beta.4.2","4.0.0-beta.4.1","4.0.0-beta.4","4.0.0-beta.3.8","4.0.0-beta.3.7","4.0.0-beta.3.6","4.0.0-beta.3.5","4.0.0-beta.3.4","4.0.0-beta.3.3","4.0.0-beta.3.2","4.0.0-beta.3.1","4.0.0-beta.3","4.0.0-beta.2.10","4.0.0-beta.2.9","4.0.0-beta.2.8","4.0.0-beta.2.7","4.0.0-beta.2.6","4.0.0-beta.2.5","4.0.0-beta.2.4","4.0.0-beta.2.3","4.0.0-beta.2.2","4.0.0-beta.2.1","4.0.0-beta.2","4.0.0-beta.1.8","4.0.0-beta.1.7","4.0.0-beta.1.6","4.0.0-beta.1.5","4.0.0-beta.1.4","4.0.0-beta.1.3","4.0.0-beta.1.2","4.0.0-beta.1.1","4.0.0-beta.1","4.0.0-alpha3","1.0.0-alpha1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-71291.json"}}],"schema_version":"1.8.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}]}