Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify Grav site using OAuth login plugin
-
DeliveryObtain or enumerate provider user identifier
-
ExploitReconstruct deterministic username and MD5 password
-
ExecutionAuthenticate via standard password login
-
ImpactGain administrative control of site
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Strong credential management
|
| Exploitation Conditions | Exploitation requires the grav-plugin-login-oauth plugin to be installed at a version below 1.4.3 with at least one account (ideally a privileged/admin account) provisioned through an OAuth provider, and relies on the default behavior that password-based login remains enabled for these auto-provisioned accounts. The concrete prerequisite the attacker must satisfy is obtaining or guessing the target account's OAuth provider identifier, from which the deterministic '<provider>.<id>' username and the unsalted MD5(identifier) password are reproduced. Limiting factors: no vulnerability absent the plugin and an OAuth-provisioned account; difficulty scales with how discoverable/enumerable the identity provider's user IDs are; and sites that disabled plain password login or upgraded to 1.4.3 are not exploitable. No user interaction or prior authentication is needed (PR:N/UI:N). |
| Impact | All severity signals point the same direction for an environment that actually runs this plugin: the vendor-assigned CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes a remote, unauthenticated, low-complexity attack with high confidentiality and integrity impact (VC:H/VI:H), scoring 9.3 Critical, and the root cause (CWE-1391, use of weak/predictable credentials - a deterministic '<provider>.<id>' username plus an unsalted MD5 of the provider identifier) makes exploitation mechanically trivial once the provider identifier is known. No EPSS score, CISA KEV listing, or public proof-of-concept was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation - the 9.3 reflects inherent exploitability, not observed in-the-wild activity. The practical risk is therefore bimodal: for a Grav site that uses this plugin with a privileged OAuth account, this is a genuine high-priority pre-auth admin-takeover bug; across the broader population it is bounded by the plugin's narrow deployment footprint and by the attacker's need to obtain or guess a valid provider identifier. One caveat to verify: the vector asserts AC:L, but the description's 'learn or guess a provider identifier' implies the attack hinges on knowing an external OAuth provider ID - trivial when such IDs are public or enumerable (e.g. sequential GitHub IDs), harder when they are opaque - so real-world complexity can vary by identity provider. |
| Exploit ScenarioDerived | An attacker identifies a Grav site running the login-oauth plugin below 1.4.3 where an administrator signed in via an OAuth provider, obtains or enumerates that admin's provider user ID (often public), and reconstructs the deterministic username and the unsalted MD5-of-identifier password. Because password login is never disabled, the attacker submits these credentials to the standard login form and is authenticated as the administrator. No public exploit code was identified in the provided data, but the credential derivation is deterministic and requires no specialized tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Authentication bypass in the Grav Login OAuth plugin before 1.4.3 lets unauthenticated remote attackers derive valid credentials for OAuth-provisioned accounts and take administrative control. The plugin assigns each auto-provisioned user a deterministic '<provider>.<id>' username and an unsalted MD5 hash of the provider identifier as the password, and it leaves password login enabled; anyone who learns or guesses the provider identifier can reproduce the login. No public exploit identified at time of analysis; the vendor-assigned CVSS 4.0 score is 9.3 Critical and the assessed CVSS 3.1 vector is AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N.
RemediationAI
Vendor-released patch: 1.4.3 - upgrade grav-plugin-login-oauth to 1.4.3 or later (advisory: https://github.com/getgrav/grav/security/advisories/GHSA-mj8v-hvf6-73gm). If immediate upgrade is not possible, disable password-based login for accounts auto-provisioned via OAuth (for example, enforce OAuth-only or SSO-only authentication for those accounts) so the MD5-derived password cannot be used; note this may break workflows that rely on local password login for those users. Additionally, rotate or reset credentials for all OAuth-provisioned accounts, especially privileged/admin accounts, and audit for any unauthorized logins; consider temporarily disabling the plugin if it is not required. Sites that have already disabled plain password login for OAuth-provisioned accounts or upgraded to 1.4.3 are not exploitable per the independent assessment.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The Grav Login OAuth plugin (grav-plugin-login-oauth, CPE cpe:2.3:a:getgrav:grav-plugin-login-oauth) integrates OAuth-based federated login into the Grav CMS. In versions before 1.4.3, when an OAuth provider authenticates a user, the plugin auto-provisions a local Grav account using a deterministic username of the form '<provider>.<id>' and sets the account password to an unsalted MD5 hash of the provider identifier. This is a CWE-1391 (Use of Weak Credentials) issue: the password is directly computable from a single, often discoverable or guessable value, there is no salt or key-stretching, and the plugin does not disable password-based login for these accounts. Consequently, an unauthenticated remote attacker (PR:N, UI:N per both the vendor CVSS 4.0 vector and the assessed CVSS 3.1 vector) who learns or guesses the provider identifier can reproduce the username and password and log in. Exploitation depends on the plugin being installed below 1.4.3 and at least one account, ideally privileged/admin, having been provisioned via OAuth; the difficulty scales with how enumerable the identity provider's user IDs are, and environments that have disabled plain password login or upgraded to 1.4.3 are not exploitable.
Know when Grav Plugin Login Oauth gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
Remote pre-auth (AV:N/PR:N/UI:N) with deterministic credentials so AC:L; admin takeover yields C:H/I:H but no direct availability loss, and authority is unchanged so S:U.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Grav Login OAuth plugin (grav-plugin-login-oauth) before 1.4.3 provisions OAuth accounts as ordinary Grav users with a deterministic <provider>.<id> username and an unsalted MD5 hash of the provider identifier as the password, without disabling password login. Unauthenticated remote attackers who learn or guess a provider identifier can reproduce these credentials and log in, gaining administrative control of privileged accounts.
Executive ViewAI
The Grav Login OAuth plugin (affected versions prior to 1.4.3) contains an authentication bypass that lets an unauthenticated remote attacker log in as OAuth-provisioned accounts, including administrators, by predicting credentials the plugin generates from the provider identifier. Any organization running an affected Grav site with this plugin enabled exposes its content, user data, and administrative functions to full takeover, with no user interaction or prior credentials required and no vendor-released patch identified at time of analysis. Leadership should treat this as a critical, externally reachable exposure because it can silently hand administrative control of public-facing web properties to an attacker, and no public exploit code has been identified at time of analysis.
No vendor-released patch identified at time of analysis. Interim mitigations: disable or remove the Grav Login OAuth plugin; block external access to the plugin's OAuth login and callback endpoints; disable password-based login for OAuth-provisioned accounts; audit, rotate, or disable credentials for accounts matching the '<provider>.<id>' username pattern; restrict administrator access to trusted networks or require an additional authentication factor; monitor authentication logs for anomalous logins to OAuth-provisioned accounts.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-97623
GHSA-9qx4-jr52-5c2w
NVD
CVE.org
EPSS
Exploit-DB