{"id":"CVE-2026-93868","summary":"Cotonti through 1.0.0 Predictable Password Recovery Token via Weak PRNG","details":"Cotonti through 1.0.0 derives password recovery validation tokens from md5(microtime()) in users.passrecover.php, creating a predictable token space of approximately one million values per second. Unauthenticated attackers can read the server Date header, precompute candidate tokens within a narrow time window, and probe them against the passrecover authentication endpoint to reset any account password including administrators.","modified":"2026-09-20T11:47:30.247091016Z","published":"2026-09-18T19:56:34.779Z","database_specific":{"cna_assigner":"VulnCheck","cwe_ids":["CWE-338"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/93xxx/CVE-2026-93868.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/93xxx/CVE-2026-93868.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-93868"},{"type":"ADVISORY","url":"https://www.vulncheck.com/advisories/cotonti-through-1.0.0-predictable-password-recovery-token-via-weak-prng"},{"type":"REPORT","url":"https://github.com/Cotonti/Cotonti/issues/1890"},{"type":"FIX","url":"https://github.com/Cotonti/Cotonti/pull/1898"},{"type":"PACKAGE","url":"https://github.com/Cotonti/Cotonti"},{"type":"ARTICLE","url":"https://github.com/Cotonti/Cotonti/blob/1.0.0/modules/users/inc/users.passrecover.php"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/cotonti/cotonti","events":[{"introduced":"0"},{"fixed":"0d554e939a315e7f7f18fba3ca1132b80c6a1adb"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"last_affected":"1.0.0"},{"fixed":"1.0.0"}],"source":["AFFECTED_FIELD","DESCRIPTION"]}}],"versions":["0.9.25","0.9.24.2","0.9.24.1","0.9.24","0.9.23","0.9.22","0.9.21","0.9.20.1","0.9.20","0.9.19","0.9.19-rc1","0.9.19-RC.1","0.9.18.1","0.9.18","0.9.17","0.9.16.2","0.9.16.1","0.9.16","0.9.15","0.9.14","0.9.13","0.9.12.1","0.9.12","cotonti-0.9.11.1","cotonti-0.9.11","cotonti-0.9.10","cotonti-0.9.8","cotonti-0.9.7","cotonti-0.9.6","cotonti-0.9.3"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-93868.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:H/VI:H/VA:H/SC:N/SI:N/SA:N"}]}