{"id":"CVE-2026-81905","summary":"Concrete CMS below 9.5.3 does not enforce validation-hash type on redemption, allowing a hash issued for one purpose to be redeemed for another.","details":"Concrete CMS below 9.5.3 stores user validation hashes for multiple purposes (email/registration validation, password reset, and persistent login) in a single table with a type column, but the redemption path resolves a hash by value alone and does not verify its type. As a result, a hash issued for one purpose can be redeemed for another: a long-lived registration hash (60-day expiry) can be submitted to the password-change endpoint to set a new password on the target account, and a password-reset hash can be submitted to the email-validation endpoint to activate an account. Exploitation requires the attacker to first obtain a valid hash through a separate channel (for example email interception, log exposure, or SSRF against an internal mail relay), so the flaw amplifies the impact of any hash disclosure rather than creating a standalone entry point. The Concrete CMS security team gave this vulnerability a CVSS v4.0 score of 6.3 with vector CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N. Thanks Yonatan Drori from Tenzai for reporting.","modified":"2026-09-12T03:47:04.790217792Z","published":"2026-09-10T23:16:31.052Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/81xxx/CVE-2026-81905.json","cna_assigner":"ConcreteCMS","cwe_ids":["CWE-640","CWE-863"]},"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-81905.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-81905"},{"type":"PACKAGE","url":"https://github.com/concretecms/concretecms"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/concretecms/concretecms","events":[{"introduced":"0"},{"last_affected":"8fe9708072c3815a5df719b592e4b23b43b4ff7a"}],"database_specific":{"source":"AFFECTED_FIELD","extracted_events":[{"introduced":"5.0.0"},{"last_affected":"9.5.2"}]}}],"versions":["9.5.2","9.5.1","9.5.0","9.5.0RC2","9.5.0RC1","9.4.4","9.4.3","9.4.2","9.4.1","9.4.0","9.4.0RC2","9.4.0RC1","9.3.7","9.3.6","9.3.5","9.3.0","9.3.4","9.3.3","9.3.2","9.3.1","8.4.1","8.3.1","8.2.1","8.2.0","8.2.0RC2","8.1.0","5.7.5.7","5.7.5.6","5.7.5.5","5.7.5.2","5.7.4.1","5.7.3.1","5.7.3","5.7.2.1","5.7.2","5.7.0.4","5.7.1","5.7.0.3","5.7.0.1","5.7.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-81905.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N"}]}