Quick answers
- Is CVE-2026-72700 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2026-72700 being exploited in the wild.
- How severe is CVE-2026-72700?
- High severity, with a CVSS score of 7.5, published 25 August 2026.
- Which products and versions are affected?
- Grav-Plugin-Login < 3.9.1.
- Is there a fix for CVE-2026-72700?
- A patch was published on 2026-08-25: Version 3.9.1 released with fix Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2026-72700 attacked?
- It is attacked over the network, in a software library.
- Am I affected by CVE-2026-72700?
- Check whether you run Grav-Plugin-Login at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
Technical details
The vulnerability is a timing attack (CWE-208) in the getgrav/grav-plugin-login Composer plugin. The vulnerable code in classes/Controller.php (taskReset()) and login.php (activation handler) compares user-supplied tokens against stored tokens using PHP's === operator instead of the constant-time hash_equals() function. This allows attackers to differentiate between incorrect and partially-correct tokens based on response timing. The plugin lacks rate limiting on the token submission endpoint (taskReset), enabling repeated guesses. Measurements show a ~4.3% timing variance between incorrect tokens and correct first-31-character matches. While the per-request timing signal is weak relative to typical network jitter, unlimited submission attempts could overcome this noise through statistical sampling. The fix, already applied in version 3.9.1, is to replace === with hash_equals() and add rate limiting to the token verification step.
Affected products
- Grav grav-plugin-login < 3.9.1
Timeline
- 2026-08-25: disclosed
- 2026-08-25: patched: Version 3.9.1 released with fix