{"id":"CVE-2026-72825","revision":"d079deca34b34be883dccefb7b8f1ed4","records":[{"revision":"d079deca34b34be883dccefb7b8f1ed4","observedAt":"2026-10-29T22:48:55.035+00:00","statement":{"source":"cve-program","id":"CVE-2026-72825","aliases":[],"title":"Grav API Plugin before 1.0.13 API-key scope cap bypass via ReportsController","description":"The getgrav/grav-plugin-api plugin before 1.0.13 contains an API-key scope cap bypass in the POST /reports/twig-content/allowlist endpoint (ReportsController). The endpoint enforces requirePermission('api.config.write') followed by a bare isSuperAdmin() check instead of requireSuper(). Because isSuperAdmin() reads access.api.super directly and never consults api_key_scopes, a least-privilege API key scoped to api.config.write minted on a super account passes the gate, allowing an attacker to append attacker-chosen tokens to the security.twig_sandbox allowlist (persisted to user/config/security.yaml). Widening the allowlist turns any subsequent Twig-in-content render into an SSTI/RCE sink.","state":0,"publishedAt":"2026-08-14T11:35:33.8+00:00","modifiedAt":"2026-10-29T21:16:49.91+00:00","affected":[{"ecosystem":"Vendor product","name":"grav-plugin-api","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"getgrav\",\n                    \"product\": \"grav-plugin-api\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"versions\": [\n                        {\n                            \"version\": \"0\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\",\n                            \"lessThan\": \"1.0.13\"\n                        },\n                        {\n                            \"version\": \"1.0.13\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ],\n                    \"repo\": \"https://github.com/getgrav/grav-plugin-api\"\n                }"}],"metrics":[{"system":"CVSS 4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N","score":7.2,"severity":"HIGH"},{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L","score":7.6,"severity":"HIGH"}],"references":["https://github.com/getgrav/grav/security/advisories/GHSA-v5ph-7v92-wqm6","https://www.vulncheck.com/advisories/grav-before-api-key-scope-cap-bypass-via-reportscontroller"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-72825","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-72825","identifiers":["CVE-2026-72825"]},"retained":false,"historicalAffected":[]}],"coverage":[]}