Quick answers
- Is This vulnerability exploited in the wild?
- No. Junglewise Threat Intelligence has no report of This vulnerability being exploited in the wild.
- How severe is This vulnerability?
- Low severity, with a CVSS score of 3.7, published 25 August 2026.
- Which products and versions are affected?
- getgrav/grav (Packagist) < 2.0.16.
- Is there a fix for This vulnerability?
- A patch was published on 2026-08-10: Patch released in version 2.0.16 Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is This vulnerability attacked?
- It is attacked over the network, in a web application.
- Am I affected?
- Check whether you run getgrav/grav (Packagist) 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 side-channel attack (CWE-208) in Grav's Utils::verifyNonce() function, which compares submitted nonces to expected values using PHP's === operator instead of the constant-time hash_equals() function. The === operator short-circuits at the first differing byte, leaking information about how many leading characters match through measurable response time differences. An attacker can measure timing variations across multiple requests to recover valid nonce values byte-by-byte, bypassing CSRF protection. The vulnerability affects Grav CMS versions before 2.0.16; the fix involves replacing the vulnerable comparison with hash_equals() to eliminate timing side-channels. No active exploitation in the wild has been reported.
Affected products
- Getgrav Grav CMS < 2.0.16
Timeline
- 2026-08-25: disclosed
- 2026-08-10: patched: Patch released in version 2.0.16