{"id":"CVE-2026-81921","summary":"In Concrete CMS 8.5.3 to 9,5,2, OAuth 2.0 Refresh-Token Grant Bypasses Account Status","details":"Concrete CMS 8.5.3 through 9.5.2 enabled the OAuth 2.0 refresh-token grant using the unmodified upstream League grant, which issued new access tokens from a valid refresh token without re-checking the associated account's active status. A user who obtained a refresh token while active could therefore continue to mint valid access tokens after being deactivated or suspended (uIsActive=0), so deactivating an account did not revoke its API access. The Concrete CMS security team gave this vulnerability a CVSS v4.0 score of 2.3 with vector CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:L/SC:L/SI:L/SA:L. Thanks sh4d0byss for reporting.","modified":"2026-09-17T03:47:15.098214369Z","published":"2026-09-15T18:48:52.840Z","database_specific":{"cna_assigner":"ConcreteCMS","cwe_ids":["CWE-862"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/81xxx/CVE-2026-81921.json"},"references":[{"type":"ADVISORY","url":"https://documentation.concretecms.org/developers/introduction/version-history/953-release-notes"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/81xxx/CVE-2026-81921.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-81921"},{"type":"PACKAGE","url":"https://github.com/concretecms/concretecms"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/concretecms/concretecms","events":[{"introduced":"372795cb4e97d9ca336c4b5623773e3b320c122a"},{"last_affected":"8fe9708072c3815a5df719b592e4b23b43b4ff7a"}],"database_specific":{"extracted_events":[{"introduced":"8.5.3"},{"last_affected":"9.5.2"}],"source":"AFFECTED_FIELD"}}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-81921.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:L/SC:L/SI:L/SA:L"}]}