Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Cotonti Cotonti
Default version status: unaffected
0 to ≤ 1.0.0affected
pkg:composer/cotonti/cotontiReferences
- https://github.com/Cotonti/Cotonti/issues/1890 ↗
- https://github.com/Cotonti/Cotonti/pull/1898 ↗
- https://github.com/Cotonti/Cotonti/blob/1.0.0/modules/users/inc/users.passrecover.php ↗
- https://github.com/Cotonti/Cotonti ↗
- https://www.vulncheck.com/advisories/cotonti-through-1.0.0-predictable-password-recovery-token-via-weak-prng ↗