{"answers":{"affected":"2 open source packages ship an affected version, including twig/twig. It affects 1 product.","exploited":"There is no known exploitation of CVE-2026-46634 in the wild and no public exploit code.","fix":"Upgrade twig/twig to 3.26.0 or later.","what":"CVE-2026-46634 is a high-severity vulnerability in twigphp Twig, published on 14 Jul 2026. Any signed-in user can exploit it over the network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-46634 and fix it if it is affected.\n\nWhat it is: CVE-2026-46634 is a high-severity vulnerability in twigphp Twig, published on 14 Jul 2026. Any signed-in user can exploit it over the network, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-46634 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- twig/twig (Packagist): affected from 3.9.0; fixed in 3.26.0\n- twig/twig (Packagist): affected from 3.9.0; fixed in 3.26.0\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-46634/ (Markdown: https://insights.sbomify.com/CVE-2026-46634/index.md)","id":"CVE-2026-46634","markdown":"https://insights.sbomify.com/CVE-2026-46634/index.md","name":"CVE-2026-46634","record":{"aliases":["DEBIAN-CVE-2026-46634","GHSA-24x9-r6q4-q93w","UBUNTU-CVE-2026-46634"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["security_bypass"],"network_reachable":"yes","non_default_config":true,"product_category":"PHP template engine","requires_auth":"low_privilege","summary":"Attackers can bypass Twig's SourcePolicy sandbox restrictions by using template_from_string to render unsecured inner templates.","user_interaction":"not_required","vuln_class":"security_feature_bypass"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"twig","vendor":"symfony"}],"cvss":{"score":7.7,"severity":"high","source":"cna","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","version":"4.0"},"cwes":[{"id":"CWE-693","name":"Protection Mechanism Failure"}],"description":"Twig is a template language for PHP. From 3.9.0 until 3.26.0, template_from_string() compiles an inner template under a synthesized __string_template__\u003chash\u003e name that can fall outside a SourcePolicyInterface sandbox decision, allowing a sandboxed template that can call template_from_string and include to render an inner template without security policy enforcement. This issue is fixed in version 3.26.0.","ecosystems":["Packagist"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"Twig: `template_from_string()` escapes a SourcePolicy-driven sandbox via synthesized template name","id":"CVE-2026-46634","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"Packagist","product":null,"products":[],"type":"security_feature_bypass","year":"2026"},"n_packages":2,"n_references":3,"next":{"headline":"Twig: Sandbox property allowlist bypass via the `column` filter (array_column on objects)","id":"CVE-2026-46635"},"packages":[{"ecosystem":"Packagist","fixed":["3.26.0"],"introduced":["3.9.0"],"last_affected":[],"package":"twig/twig","purl":null,"source":"GHSA-24x9-r6q4-q93w"},{"ecosystem":"Packagist","fixed":["3.26.0"],"introduced":["3.9.0"],"last_affected":[],"package":"twig/twig","purl":"pkg:composer/twig/twig","source":"GHSA-24x9-r6q4-q93w"}],"prev":{"headline":"Twig: PHP code injection via `{% use %}` template name","id":"CVE-2026-46633"},"products":["Twig"],"published":"2026-07-14","related":[{"cvss_score":9.8,"headline":"Code injection in n/a","id":"CVE-2018-13818","kev_date_added":null,"published":"2018-07-10"},{"cvss_score":8.7,"headline":"Twig: PHP code injection via `{% use %}` template name","id":"CVE-2026-46633","kev_date_added":null,"published":"2026-07-14"},{"cvss_score":8.7,"headline":"Twig: Arbitrary PHP code execution via `_self.(\u003cstring\u003e)` macro-reference compilation","id":"CVE-2026-46640","kev_date_added":null,"published":"2026-07-14"},{"cvss_score":8.7,"headline":"Twig 2.16.x \u0026 3.9.0-3.25.x Sandbox Bypass via SourcePolicyInterface","id":"CVE-2026-24425","kev_date_added":null,"published":"2026-05-20"},{"cvss_score":8.6,"headline":"Twig has a possible sandbox bypass","id":"CVE-2024-45411","kev_date_added":null,"published":"2024-09-09"},{"cvss_score":7.5,"headline":"Information disclosure in n/a","id":"CVE-2001-1537","kev_date_added":null,"published":"2005-07-14"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-07-29","vendors":["twigphp"]},"summary":"Attackers can bypass Twig's SourcePolicy sandbox restrictions by using template_from_string to render unsecured inner templates.","url":"https://insights.sbomify.com/CVE-2026-46634/"}