{"id":"CVE-2026-72826","aliases":[],"cve":{"records":[{"id":"CVE-2026-72826","source":"VulnCheck","state":"PUBLISHED","reasons":[],"replacements":[],"disputed":false,"unsupportedWhenAssigned":false,"reserved":"2026-08-10T15:12:59.509Z","published":"2026-08-14T11:35:34.460Z","modified":"2026-10-29T21:16:50.591Z"}],"publishers":[{"name":"VulnCheck","role":"CNA","organizationId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","modified":"2026-10-29T21:16:50.591Z"},{"name":"CISA-ADP","role":"ADP","organizationId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","modified":"2026-08-18T01:58:21.323Z"}],"references":[{"url":"https://github.com/getgrav/grav/security/advisories/GHSA-95v9-4fcj-96gh","tags":["vendor-advisory"],"source":"VulnCheck"},{"url":"https://www.vulncheck.com/advisories/grav-before-scope-bypass-via-createapikey","tags":["third-party-advisory"],"source":"VulnCheck"},{"url":"https://github.com/getgrav/grav/security/advisories/GHSA-95v9-4fcj-96gh","tags":["patch"],"source":"CISA-ADP"}],"weaknesses":[{"id":"CWE-266","description":"Incorrect Privilege Assignment","source":"VulnCheck"}],"applicability":[{"source":"VulnCheck","statements":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:getgrav:grav-plugin-api:*:*:*:*:*:*:*:*","versionEndExcluding":"1.0.13"}]}]}]}],"prioritization":[{"source":"CISA-ADP","type":"SSVC","role":"CISA Coordinator","timestamp":"2026-08-18T01:57:34.235305Z","decisions":[{"name":"Exploitation","value":"poc"},{"name":"Automatable","value":"yes"},{"name":"Technical Impact","value":"total"}]}]},"title":"Grav API Plugin before 1.0.13 Scope Bypass via createApiKey","titleSource":"VulnCheck","descriptionSource":"VulnCheck","description":"The getgrav/grav-plugin-api plugin before 1.0.13 fails to validate that the scopes of a newly created API key are a subset of the caller's scopes in createApiKey. The self-target path of requireApiKeyPermission() requires only the baseline api.access scope, and the new key's scopes are read directly from the request body with no subset check. An attacker holding a minimal-scope API key on a super account can submit an empty scopes array to mint an unscoped, full-access super key, bypassing scope restrictions (and enabling further chains such as configuration write to RCE).","score":8.8,"severity":"high","published":"2026-08-14T11:35:34.460Z","modified":"2026-10-29T21:16:50.591Z","withdrawn":false,"knownExploited":false,"affected":[],"products":[{"vendor":"getgrav","name":"grav-plugin-api","platforms":[],"versions":[{"version":"0","status":"affected","lessThan":"1.0.13","versionType":"semver"},{"version":"1.0.13","status":"unaffected","versionType":"semver"}],"defaultStatus":"unaffected","cpes":[],"source":"VulnCheck","url":"https://www.cve.org/CVERecord?id=CVE-2026-72826"}],"remediation":[],"references":["https://github.com/getgrav/grav/security/advisories/GHSA-95v9-4fcj-96gh","https://www.vulncheck.com/advisories/grav-before-scope-bypass-via-createapikey"],"sources":[{"name":"CVE","id":"CVE-2026-72826","modified":"2026-10-29T21:16:50.591Z","url":"https://www.cve.org/CVERecord?id=CVE-2026-72826"}],"assessments":[{"source":"VulnCheck","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","score":8.7},{"source":"VulnCheck","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","score":8.8}],"sourceAffected":[],"observedAt":"2026-10-29T21:37:30.259Z","kev":{"status":"not-listed","checkedAt":"2026-10-31T14:10:32.801Z"},"coverage":[{"source":"NVD","status":"available","checkedAt":"2026-10-29T22:05:35.056Z","attemptedAt":"2026-10-29T22:05:35.056Z"},{"source":"GHSA","status":"available","checkedAt":"2026-10-29T22:05:35.841Z","attemptedAt":"2026-10-29T22:05:35.841Z"},{"source":"EUVD","status":"available","checkedAt":"2026-10-29T22:05:36.387Z","attemptedAt":"2026-10-29T22:05:36.387Z"},{"source":"EPSS","status":"available","checkedAt":"2026-10-29T22:05:35.232Z","attemptedAt":"2026-10-29T22:05:35.232Z"}],"evidence":[{"source":"NVD","id":"CVE-2026-72826","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-72826","modified":"2026-10-29T21:17:32.497","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","checkedAt":"2026-10-29T22:05:35.056Z"},{"source":"NVD","id":"CVE-2026-72826","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-72826","modified":"2026-10-29T21:17:32.497","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","checkedAt":"2026-10-29T22:05:35.056Z"},{"source":"FIRST EPSS","id":"CVE-2026-72826","url":"https://www.first.org/epss/","probability":0.00469,"percentile":0.40564,"date":"2026-10-29","checkedAt":"2026-10-29T22:05:35.232Z"},{"source":"GitHub Advisory Database","id":"GHSA-6959-h8j7-rr7m","url":"https://github.com/advisories/GHSA-6959-h8j7-rr7m","modified":"2026-08-14T12:31:34Z","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","checkedAt":"2026-10-29T22:05:35.841Z"},{"source":"ENISA EUVD","id":"EUVD-2026-58640","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-58640","modified":"Oct 29, 2026, 9:16:50 PM","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","checkedAt":"2026-10-29T22:05:36.387Z"}],"aiSummary":{"text":"The Grav API Plugin before 1.0.13 has a scope bypass vulnerability via createApiKey, allowing an attacker with a minimal-scope API key to create an unscoped, full-access key. The plugin fails to validate the scopes of a newly created API key. An attacker must have access to a super account with a minimal-scope API key.","model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","generatedAt":"2026-10-30T09:31:21.355Z","sources":[{"name":"CVE","url":"https://www.cve.org/CVERecord?id=CVE-2026-72826"}]}}