Description
Grav before 2.0.4 contains a two-factor authentication bypass vulnerability in the login plugin where the regenerate2FASecret task checks only user existence, not authorization, during the pending TOTP challenge window. Attackers who know the victim's password can call this task without a CSRF nonce to overwrite the 2FA secret with an attacker-chosen value, compute a valid TOTP code, and complete authentication while reducing 2FA to password-only protection.
Published: 2026-07-17
Score: 9.1 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Grav plugins prior to 2.0.4 allow an attacker who already knows a user’s password to overwrite that user’s two‑factor authentication secret. The vulnerability lies in the regenerate2FASecret task, which only checks that a user exists, not that the requester is authorized. By calling this task without a CSRF nonce, an attacker can set the secret to a value of their choice, compute a valid time‑based one‑time password, and complete authentication. The result is a complete defeat of the two‑factor mechanism, leaving the account protected only by its password.

Affected Systems

Any installation of Grav that includes the login plugin and runs a version earlier than 2.0.4 is susceptible. The affected product is Grav, provided by Getgrav. Users of older releases should verify version details against the vendor’s release notes and upgrade if necessary.

Risk and Exploitability

The CVSS score of 9.1 denotes a critical severity, with the EPSS score indicating a very low but present likelihood of exploitation. The vulnerability is not listed in CISA’s KEV catalog, but the impact is severe because it remediates two‑factor authentication and permits unauthorized access if an attacker owns a valid password. The likely attack vector is internal or privileged, requiring knowledge of a legitimate user’s password and the ability to send an HTTP request to the regeneration endpoint, but no elevated privileges or CSRF protection are needed.

Generated by OpenCVE AI on July 31, 2026 at 00:48 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Grav to version 2.0.4 or later, ensuring the login plugin is updated to the patched release.
  • Temporarily disable the regenerate2FASecret task by editing the plugin code or removing the route until a patch is applied, preventing unauthorized secret regeneration.
  • Force a password reset and re‑enable two‑factor authentication for all users to ensure that any compromised secrets are replaced with fresh authenticator keys.

Generated by OpenCVE AI on July 31, 2026 at 00:48 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 17 Jul 2026 11:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Fri, 17 Jul 2026 00:30:00 +0000

Type Values Removed Values Added
Description Grav before 2.0.4 contains a two-factor authentication bypass vulnerability in the login plugin where the regenerate2FASecret task checks only user existence, not authorization, during the pending TOTP challenge window. Attackers who know the victim's password can call this task without a CSRF nonce to overwrite the 2FA secret with an attacker-chosen value, compute a valid TOTP code, and complete authentication while reducing 2FA to password-only protection.
Title Grav < 2.0.4 2FA Bypass via Secret Regeneration
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-862
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

{'score': 7.4, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N'}

cvssV4_0

{'score': 9.1, 'vector': 'CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-17T10:29:09.539Z

Reserved: 2026-07-13T16:40:10.961Z

Link: CVE-2026-62232

cve-icon Vulnrichment

Updated: 2026-07-17T10:28:47.312Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T01:00:14Z

Weaknesses