Summary
CVE-2026-109321 is a critical authentication bypass vulnerability (CWE-1391, Use of Weak Credentials) in the Login OAuth plugin for Grav (grav-plugin-login-oauth). Versions before 1.4.3 create OAuth-provisioned accounts with predictable credentials, which lets an unauthenticated remote attacker log in and potentially gain administrative control of privileged accounts. The CVSS v4.0 score is 9.3 (Critical).
Technical details
- Root cause: the plugin creates OAuth accounts as ordinary Grav users with a deterministic username in the form
<provider>.<id>. The password is an unsalted MD5 hash of the provider identifier. - Password login is left enabled for these accounts, so the derived credentials can be used on the standard login form.
- Trigger conditions: the plugin is installed in an affected version and OAuth accounts have been provisioned. The attacker must know or guess a provider identifier.
- Attack vector: network. No privileges or user interaction are required, and attack complexity is low.
- Impact: unauthorized login as the provisioned account, including privileged accounts. Administrative control of the Grav site is possible. Confidentiality and integrity are rated high in the CVSS vector.
Affected software
- grav-plugin-login-oauth versions 1.0.0-beta.1 through 1.4.2
- Fixed in version 1.4.3
Severity
- CVSS v4.0: 9.3 (Critical),
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N - CVSS v3.1: 9.1 (Critical),
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Mitigation and recommended actions
- Immediate: upgrade the Login OAuth plugin to version 1.4.3 or later.
- Review accounts provisioned through OAuth on affected versions, especially any with administrative privileges. Because the old passwords were derived from provider identifiers, consider resetting their credentials.
- If you cannot upgrade immediately, consider disabling or removing the plugin until it can be updated. This workaround is not stated in the vendor advisory.

