Impact
A weak pseudo‑random number generator (CWE-338) is used to create password‑recovery tokens in Cotonti. The tokens are derived from md5(microtime()), producing a predictable set of roughly one million possibilities each second. An unauthenticated attacker can read the server Date header, estimate the current time, pre‑compute a list of likely tokens, and query the password‑recovery endpoint. When a token matches, the application allows the attacker to reset any account password, including that of administrators. The flaw thus delivers a remote password‑reset exploit that compromises account confidentiality, integrity, and the ability to impersonate privileged users.
Affected Systems
The vulnerability affects Cotonti versions up to 1.0.0, specifically the users.passrecover.php module in the 1.0.0 release and earlier builds. The vendor is Cotonti and the affected product is Cotonti.
Risk and Exploitability
The vulnerability has a CVSS base score of 9.2, indicating critical severity. The EPSS score of less than 1% suggests that exploitation probability is currently low, and the vulnerability is not listed in the CISA KEV catalog. Nonetheless, the described pre‑computation technique can be performed within a narrow time window, making it a realistic threat for attackers with network access. The attack vector is effectively an unauthenticated network attack that requires the ability to read HTTP headers and probe the password‑recovery service.
OpenCVE Enrichment