{"id":"CVE-2026-109320","state":"PUBLISHED","title":"Grav API Plugin before 1.0.36 Disabled Account Session Access Bypass","description":"The Grav API plugin (grav-plugin-api) before 1.0.36 contains an improper session validation vulnerability that allows disabled accounts to keep API access, because SessionAuthenticator does not enforce account state. Disabled users can reuse an already authorized browser or remember-me session to call API endpoints until expiry, defeating operator revocation.","publishedAt":"2026-10-12T16:05:12.807Z","updatedAt":"2026-10-13T18:12:07.342Z","severity":{"score":5.3,"label":"Medium","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","source":"VulnCheck"},"assigner":"VulnCheck","products":["getgrav grav-plugin-api"],"affected":[{"vendor":"getgrav","product":"grav-plugin-api","packageURL":"pkg:github/getgrav/grav-plugin-api","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"1.0.36","versionType":"semver"},{"version":"1.0.36","status":"unaffected","versionType":"semver"}],"repo":"https://github.com/getgrav/grav-plugin-api"}],"references":["https://github.com/getgrav/grav/security/advisories/GHSA-7qfj-82q8-frw6","https://www.vulncheck.com/advisories/grav-api-plugin-before-1.0.36-disabled-account-session-access-bypass"],"weaknesses":["CWE-613"],"ingestedAt":"2026-10-29T20:10:33.477Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/109xxx/CVE-2026-109320.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-109320","state":"PUBLISHED","datePublished":"2026-10-12T16:05:12.807Z","dateUpdated":"2026-10-13T18:12:07.342Z","assignerShortName":"VulnCheck","assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateReserved":"2026-10-12T14:15:29.011Z"},"containers":{"cna":{"title":"Grav API Plugin before 1.0.36 Disabled Account Session Access Bypass","descriptions":[{"lang":"en","value":"The Grav API plugin (grav-plugin-api) before 1.0.36 contains an improper session validation vulnerability that allows disabled accounts to keep API access, because SessionAuthenticator does not enforce account state. Disabled users can reuse an already authorized browser or remember-me session to call API endpoints until expiry, defeating operator revocation."}],"affected":[{"vendor":"getgrav","product":"grav-plugin-api","packageURL":"pkg:github/getgrav/grav-plugin-api","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"1.0.36","versionType":"semver"},{"version":"1.0.36","status":"unaffected","versionType":"semver"}],"repo":"https://github.com/getgrav/grav-plugin-api"}],"references":[{"url":"https://github.com/getgrav/grav/security/advisories/GHSA-7qfj-82q8-frw6","tags":["vendor-advisory","third-party-advisory"],"name":"GitHub Security Advisory (GHSA-7qfj-82q8-frw6)"},{"url":"https://www.vulncheck.com/advisories/grav-api-plugin-before-1.0.36-disabled-account-session-access-bypass","name":"VulnCheck Advisory: Grav API Plugin before 1.0.36 Disabled Account Session Access Bypass","tags":["third-party-advisory"]}],"metrics":[{"cvssV4_0":{"Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","Safety":"NOT_DEFINED","attackComplexity":"LOW","attackRequirements":"NONE","attackVector":"NETWORK","baseScore":5.3,"baseSeverity":"MEDIUM","exploitMaturity":"NOT_DEFINED","privilegesRequired":"LOW","providerUrgency":"NOT_DEFINED","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"NONE","valueDensity":"NOT_DEFINED","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","version":"4.0","vulnAvailabilityImpact":"NONE","vulnConfidentialityImpact":"LOW","vulnIntegrityImpact":"LOW","vulnerabilityResponseEffort":"NOT_DEFINED"},"format":"CVSS"},{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":5.4,"baseSeverity":"MEDIUM","confidentialityImpact":"LOW","integrityImpact":"LOW","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N","version":"3.1"},"format":"CVSS"}],"problemTypes":[{"descriptions":[{"cweId":"CWE-613","lang":"en","description":"Insufficient Session Expiration","type":"CWE"}]}],"providerMetadata":{"shortName":"VulnCheck","orgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateUpdated":"2026-10-12T16:05:12.807Z"},"datePublic":"2026-09-23T00:00:00.000Z","cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:getgrav:grav-plugin-api:*:*:*:*:*:*:*:*","versionEndExcluding":"1.0.36"}]}]}],"credits":[{"lang":"en","value":"AlpetGexha","type":"reporter"}],"x_generator":{"engine":"vulncheck-endgame"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-10-13T18:11:47.441705Z","id":"CVE-2026-109320","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-13T18:12:07.342Z"}}]}}}