Description
Grav Login Plugin adds login, basic ACL, and session wide messages to Grav. Prior to 3.8.11, the Grav Login plugin login.regenerate2FASecret task accepts a top-level GET request through the TaskServiceProvider task: URI parameter without requiring a login-form nonce, an Origin check, or a Referer check. Under the default SameSite=Lax session cookie policy, an off-site navigation can invoke taskRegenerate2FASecret() in a logged-in victim's session, overwrite the victim's TOTP secret, and force two-factor re-enrollment. This issue is fixed in version 3.8.11.
Published: 2026-08-19
Score: 5.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A CSRF flaw in the Grav Plugin Login allows an unauthenticated attacker to invoke the login.regenerate2FASecret task through a simple GET request. Because the task requires no CSRF nonce, Origin or Referer checks, an attacker can trick a logged‑in victim into navigating to a crafted URL, causing the plugin to overwrite the victim’s TOTP secret. The user is then forced to re‑enroll for two‑factor authentication and may become locked out if the attacker can reset the secret repeatedly. This is catalogued as CWE‑352.

Affected Systems

The vulnerability affects all releases of the Grav Plugin Login supplied by getgrav that precede version 3.8.11. Sites that use the default login.login functionality and maintain user sessions are potential targets.

Risk and Exploitability

The CVSS score of 5.4 indicates medium severity, while the EPSS score of less than 1 % shows a low probability of exploitation. The vulnerability is not listed in the CISA KEV catalog. Exploitation requires the victim to have an active authenticated session; the attacker merely needs to host a link or embed an image that sends a GET request. The lack of a CSRF token and the default SameSite=Lax policy make the attack straightforward once the victim visits the malicious page.

Generated by OpenCVE AI on August 20, 2026 at 15:09 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade grav-plugin-login to version 3.8.11 or newer, which eliminates the flaw.
  • If an upgrade cannot be applied immediately, restrict the login.regenerate2FASecret endpoint by disabling GET requests or forcing a CSRF nonce requirement in the plugin configuration.
  • Enforce a SameSite=Strict policy for Grav session cookies to prevent cross‑site requests from reaching the task service.
  • Monitor authentication logs for unexpected 2‑factor credential resets and audit user sessions for signs of unauthorized re‑enrollment.

Generated by OpenCVE AI on August 20, 2026 at 15:09 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 21 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Getgrav
Getgrav grav-plugin-admin
Vendors & Products Getgrav
Getgrav grav-plugin-admin

Wed, 19 Aug 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Wed, 19 Aug 2026 16:00:00 +0000

Type Values Removed Values Added
Description Grav Login Plugin adds login, basic ACL, and session wide messages to Grav. Prior to 3.8.11, the Grav Login plugin login.regenerate2FASecret task accepts a top-level GET request through the TaskServiceProvider task: URI parameter without requiring a login-form nonce, an Origin check, or a Referer check. Under the default SameSite=Lax session cookie policy, an off-site navigation can invoke taskRegenerate2FASecret() in a logged-in victim's session, overwrite the victim's TOTP secret, and force two-factor re-enrollment. This issue is fixed in version 3.8.11.
Title CSRF in grav-plugin-login: anonymous attacker rotates a logged-in user's 2FA (TOTP) secret (no nonce on task=login.regenerate2FASecret)
Weaknesses CWE-352
References
Metrics cvssV3_1

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


Subscriptions

Getgrav Grav-plugin-admin
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-19T16:41:31.426Z

Reserved: 2026-07-14T20:22:04.394Z

Link: CVE-2026-62671

cve-icon Vulnrichment

Updated: 2026-08-19T16:39:54.365Z

cve-icon NVD

Status : Received

Published: 2026-08-19T16:18:19.757

Modified: 2026-08-19T17:19:54.680

Link: CVE-2026-62671

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-21T20:45:03Z

Weaknesses
  • CWE-352

    Cross-Site Request Forgery (CSRF)