# CVE-2026-109312: Grav Login plugin authentication bypass in 2FA profile update

Source: https://junglewise.ai/threats/cve-2026-109312-grav-login-plugin-2-7-0-before-3-9-9-contains-an-authentication  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-12. Updated: 2026-10-16  
License: CC BY 4.0 with a link back

CVE-2026-109312 · Severity: high · CVSS 8.1 · Published 2026-10-12

Grav's Login plugin handles user authentication and two-factor authentication for the Grav CMS. An attacker who knows a victim's password can bypass the two-factor requirement by publishing a form on an unprotected page that updates the user's profile to disable 2FA before the second factor is completed, leading to account takeover.

Technologies: [Getgrav Login Plugin](https://junglewise.ai/threats/technologies/getgrav-login-plugin). Vendors: [Getgrav](https://junglewise.ai/threats/vendors/getgrav).

## Quick answers

**Is CVE-2026-109312 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-109312 being exploited in the wild.

**How severe is CVE-2026-109312?** High severity, with a CVSS score of 8.1, published 12 October 2026.

**Which products and versions are affected?** Getgrav Login Plugin 2.7.0 through 3.9.8.

**Is there a fix for CVE-2026-109312?** Yes: fixed in 3.9.9. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-109312 attacked?** It is attacked over the network.

**Am I affected by CVE-2026-109312?** Check whether you run Getgrav Login Plugin 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.

## How to fix

- Fixed in 3.9.9

## Technical details

The vulnerability exists in the processUserProfile() function, which verifies that a session user exists but fails to check whether a pending 2FA session is fully authorized. An attacker with the victim's password can craft an unprotected page form that invokes the update_user action during the pending 2FA window and modify the twofa_enabled field to disable two-factor authentication. This requires the attacker to have the ability to publish a page without access rules and the twofa_enabled field to be included in the Login plugin's profile configuration.

## Affected products

- Getgrav Login plugin 2.7.0 through 3.9.8

## Timeline

- 2026-09-23: disclosed
- 2026-10-12: advisory

## References

- [https://github.com/getgrav/grav/security/advisories/GHSA-5rph-jqcf-2x36](https://github.com/getgrav/grav/security/advisories/GHSA-5rph-jqcf-2x36)
- [https://www.vulncheck.com/advisories/grav-login-plugin-2.7.0-before-3.9.9-2fa-bypass-via-profile-update-form](https://www.vulncheck.com/advisories/grav-login-plugin-2.7.0-before-3.9.9-2fa-bypass-via-profile-update-form)

## Related threats

- [Grav Login plugin authentication bypass in two-factor authentication](https://junglewise.ai/threats/cve-2026-109313-grav-login-plugin-2-7-0-before-3-9-9-contains-an-authentication)
- [Grav Login plugin two-factor authentication bypass](https://junglewise.ai/threats/cve-2026-100667-grav-plugin-login-the-grav-cms-login-plugin-versions-3-8-7-and-3)
