Grav Login plugin: Authentication bypass of 2FA via profile update
Summary
The Grav Login plugin (getgrav/grav-plugin-login) from 2.7.0 up to 3.9.8 does not check that a two-factor authentication (2FA) session is fully authorized before updating profile data. An attacker who knows a victim's password and can publish a page form without an access rule can change profile fields before the second factor is completed, including disabling 2FA. This can lead to full account takeover. Exploitation requires a valid password and a suitable page form.
Affected
- getgrav grav-plugin-login 2.7.0 up to, but not including, 3.9.9
- Unaffected: 3.9.9 and later
Fixed in
- Version 3.9.9 (per the CVE record and the advisory metadata). The advisory text says no patched release was available when it was published, so verify the fix on the vendor page before deploying.
Workaround
- Unknown. No vendor-sourced workaround is documented.
- Suggested by the analyst, not from the vendor: review front-end page forms for missing access rules until the plugin is upgraded.
Exploitation
- Not marked as known exploited in the mirror data reviewed; verify in CISA KEV directly.
- CISA SSVC: exploitation none, automatable no, technical impact total.
- No public proof of concept found in the reviewed sources.
Our recommendation
- Upgrade the Grav Login plugin to 3.9.9 or later once the fix is confirmed.
- Check whether the plugin is installed on internet-facing Grav sites and whether 2FA is used.
- Review accounts with admin or editor rights for unexpected changes to 2FA settings and profile data.
- Reset passwords on accounts with weak or reused credentials.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-5rph-jqcf-2x36 github.com
- VulnCheck advisory: Grav Login Plugin 2FA Bypass via Profile Update Form www.vulncheck.com
- OSV: CVE-2026-109312 osv.dev
- VulDB entry 417113 vuldb.com
- OpenCVE: CVE-2026-109312 app.opencve.io
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 08:44.
Original description (NVD)
Grav Login plugin 2.7.0 before 3.9.9 contains an authentication bypass in processUserProfile(), which checks that the session user exists but not that a pending front-end 2FA session is fully authorized. Attackers with a victim's password who can publish a page form without an access rule can invoke update_user before completing 2FA to disable twofa_enabled and take over the account.
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
