CVE-2026-72701
Received Received - Intake

Timing Attack in Grav CMS CSRF Nonce Validation

Vulnerability report for CVE-2026-72701, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-25

Last updated on: 2026-08-25

Assigner: VulnCheck

Description

Grav 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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-25
Last Modified
2026-08-25
Generated
2026-08-25
AI Q&A
2026-08-25
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
grav cms to 2.0.16 (exc)
getgrav grav_cms to 2.0.16 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-208 Two separate operations in a product require different amounts of time to complete, in a way that is observable to an actor and reveals security-relevant information about the state of the product, such as whether a particular operation was successful or not.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

Grav CMS before 2.0.16 has a timing vulnerability in Utils::verifyNonce() where it uses a non-constant-time string comparison (=== operator) instead of hash_equals() for CSRF nonce validation. Attackers can exploit timing differences in responses to recover valid nonce values byte-by-byte through multiple requests, weakening CSRF protection.

Detection Guidance

Check Grav CMS version with: grep -r 'version' /path/to/grav/vendor/getgrav/grav/composer.json. If version is below 2.0.16, the system is vulnerable. Monitor HTTP response times for nonce validation endpoints for unusual timing patterns that may indicate exploitation attempts.

Impact Analysis

An attacker could bypass CSRF protections by recovering valid nonce values through timing attacks. This could allow unauthorized actions to be performed on behalf of authenticated users, such as changing account settings or making unintended changes to the site.

Compliance Impact

This vulnerability weakens CSRF protection by allowing attackers to recover valid nonce values through timing attacks. While not directly violating GDPR or HIPAA, it could indirectly impact compliance by reducing the effectiveness of security controls designed to prevent unauthorized data access or modifications. Organizations using vulnerable Grav CMS versions may need to implement compensating controls or update systems to maintain compliance.

Mitigation Strategies

Upgrade Grav CMS to version 2.0.16 or later immediately. If upgrading is not possible, modify the Utils::verifyNonce() function to use hash_equals() instead of === for nonce comparison. Review and harden CSRF protection mechanisms in the application.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-72701. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart