CVE-2026-12597
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedThe LoginPress Pro plugin for WordPress is vulnerable to Authentication Bypass via the GitHub OAuth callback in versions up to, and including, 6.2.3. The vulnerability exists in the loginpress_on_github_login() function, which blindly trusts the first element (profile[0]['email']) of the array returned by GitHub's /user/emails endpoint as an account-binding identifier without verifying that the email carries a verified === true status. This makes it possible for unauthenticated attackers to log in as any existing WordPress user, including administrators, by adding an unverified email address matching a local account to their GitHub profile and triggering the OAuth callback via a crafted code parameter — causing the plugin to call get_user_by('email', ...) and establish an authenticated session for the matched account. Practical exploitation is conditional on GitHub returning the attacker-added unverified email at index 0 of the /user/emails response, as GitHub typically prioritizes the primary verified address first; nonetheless, the absence of any email verification check in the plugin constitutes a fundamental authentication bypass flaw.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceThe LoginPress Pro WordPress plugin has an authentication bypass vulnerability in its GitHub OAuth implementation. The loginpress_on_github_login() function retrieves email addresses from GitHub's /user/emails endpoint but fails to verify that the email has verified===true status. It blindly trusts the first email in the array, allowing attackers to bind an unverified email matching an existing WordPress administrator account to their GitHub profile and authenticate as that user.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- High
- Privileges
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Confirm LoginPress Pro installation and versionIn WordPress admin, go to Plugins > Installed Plugins and locate LoginPress Pro. Note the version number. Compare this version against the CVE-affected version range (if known).Affected if The installed version falls within the affected version range and no security patch has been applied.
-
Verify GitHub OAuth login feature is enabledIn WordPress admin, navigate to LoginPress Settings > Social Login (or similar). Check if the GitHub OAuth option is enabled/active.Affected if GitHub OAuth login is enabled in LoginPress Pro settings.
-
Inspect the loginpress_on_github_login function for missing verified email checkAccess the LoginPress Pro source code (via FTP, file manager, or WP plugin editor). Locate the loginpress_on_github_login function and examine how it handles emails from GitHub's /user/emails endpoint. Look for code that iterates through emails and checks verified===true before using an email for account binding.Affected if The function retrieves emails but does not verify that verified===true before using an email for user binding/authentication.
-
Review WordPress users with GitHub OAuth linked accountsIn WordPress admin, go to Users and examine user accounts. Check user_meta or the LoginPress user data to identify accounts linked via GitHub OAuth. Note any accounts with GitHub as the login method.Affected if Any WordPress user account has GitHub OAuth linked, particularly administrator accounts.
A user is affected if LoginPress Pro with GitHub OAuth enabled is installed, the plugin version is within the affected range, and the loginpress_on_github_login() function does not verify that GitHub emails have verified===true before binding/authenticating users.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scopedDisable the GitHub OAuth login feature in LoginPress Pro immediately. The fix requires modifying the loginpress_on_github_login() function to iterate through all returned emails and verify that verified===true before using any email for account binding.
Latest version of LoginPress Pro above 6.2.3 (contact vendor for exact patch release)
- 1. Navigate to the WordPress admin dashboard
- 2. Go to Plugins > Installed Plugins
- 3. Locate LoginPress Pro plugin
- 4. Check the current version number
- 5. Navigate to Plugins > Add New > Upload Plugin (or check plugin settings for updates)
- 6. Update to the latest available version of LoginPress Pro that addresses the OAuth email verification vulnerability
- 7. Verify the update was successful by confirming the new version number
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation3.0 h
- Implementation4.0 h
- Testing4.0 h
- Review / QA2.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $3,648.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2026-12597 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2026-12597 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data