{"id":"GHSA-px9v-979x-qmh9","title":"Duplicate Advisory: Grav: Non constant time nonce comparison in Utils::verifyNonce() used for CSRF protection","summary":"Duplicate Advisory: Grav: Non constant time nonce comparison in Utils::verifyNonce() used for CSRF protection","severity":"medium","cvss":3.7,"cwe":["CWE-208"],"vendor":"getgrav","product":"getgrav/grav","ecosystem":"composer","affected":["getgrav/grav < 2.0.16"],"published":"2026-08-25","updated":"2026-09-17","sourceUpdated":"2026-09-17T20:24:50Z","source":"GHSA","sourceUrl":"https://github.com/advisories/GHSA-px9v-979x-qmh9","references":[{"url":"https://github.com/getgrav/grav/security/advisories/GHSA-38p6-h87p-r4cg"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-72701"},{"url":"https://www.vulncheck.com/advisories/grav-cms-before-timing-attack-via-verifynonce"},{"url":"https://github.com/advisories/GHSA-px9v-979x-qmh9"}],"tags":["ghsa","composer"],"ingestedAt":"2026-09-17T20:28:02.779Z","slug":"GHSA-px9v-979x-qmh9","body":"## Overview\n\n### Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-38p6-h87p-r4cg. This link is maintained to preserve external references.\n\n### Original Description\nGrav CMS before 2.0.16 contains a timing vulnerability in Utils::verifyNonce() that uses non-constant-time string comparison with the === operator instead of hash_equals() for CSRF nonce validation. Attackers can measure response timing differences to recover valid nonce values byte-by-byte through multiple requests, weakening CSRF protection below its intended security margin.\n\n## Affected packages\n\n- `getgrav/grav < 2.0.16`\n\n## Remediation\n\nRefer to the advisory for the patched release.","depth":"sunlit","depthScore":20,"depthScoreParts":{"impact":20.4,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}