CVE-2026-54768: WPGraphQL Allows User Enumeration Without Login

Step by step
How the attack unfolded
Click a phase for details – or let the animation play through.
PHASE 1/5 · Reconnaissance

The attacker identifies sites with a publicly reachable, vulnerable WPGraphQL endpoint.

T1595.002 – Active Scanning: Vulnerability Scanning T1592 – Gather Victim Host Information
  • Target: WordPress sites running WPGraphQL 2.0.0 to 2.15.0
  • GraphQL endpoint reachable by default at /graphql
  • Mainly affects headless WordPress setups (Next.js, Gatsby, Astro)
  • Approx. 30,000 active installations per WordPress.org
PHASE 2/5 · Initial Access

Without authentication, the attacker calls the sendPasswordResetEmail mutation via the public GraphQL API.

T1190 – Exploit Public-Facing Application
  • Vulnerability CVE-2026-54768 (CVSS 4.0: 6.9, Medium)
  • Classified as CWE-204 (Observable Response Discrepancy)
  • No login or user interaction required (PR:N / UI:N)
  • Deprecated user field in src/Deprecated.php (lines 433–450)
PHASE 3/5 · Defense Evasion

The deprecated user field completely undermines the deliberately built anti-enumeration protection.

  • Mutation normally always returns success: true (protection)
  • The deprecated user field leaks: user object vs. null
  • Bypasses already blocked REST API, sitemap and ?author=N paths
  • Flaw found in ~15 minutes via source-code review (Luke Granto)
PHASE 4/5 · Discovery

By reading the user field, the attacker determines which author-class accounts actually exist.

T1087 – Account Discovery T1589 – Gather Victim Identity Information
  • Existing author account → full user object returned
  • Non-existing account → null returned
  • Only author-class accounts with at least one published post are exposed
  • Basis for targeted phishing and brute-force attacks
PHASE 5/5 · Collection

For existing accounts, several pieces of personal author profile data are returned as well.

T1213 – Data from Information Repositories
  • Internal database ID of the account
  • Name, first and last name, and slug
  • Biography and profile URL
  • No evidence of active exploitation in the wild
Short & clear answers
Frequently asked questions about this incident
Am I affected by CVE-2026-54768?
Only websites running the WPGraphQL plugin in a version between 2.0.0 and 2.15.0 with a publicly accessible GraphQL endpoint (usually https://your-domain.com/graphql) are affected. In addition, author-class accounts with at least one published post must exist. Standard WordPress sites without a headless architecture typically do not have this plugin installed and are therefore not affected.
What do I need to do right now?
Update WPGraphQL immediately to version 2.15.1 or newer – the current stable release is 2.18.0 (as of July 2026). To do so, go to Plugins → Installed Plugins in your WordPress dashboard and run the update. The patch has been available since June 9, 2026, and fully resolves the issue.
How do I check which WPGraphQL version I have installed?
Log into your WordPress admin area and open Plugins → Installed Plugins to see the WPGraphQL version number. Alternatively, you can run the WP-CLI command 'wp plugin list --name=wp-graphql --fields=name,version,status'. Any version below 2.15.1 means you are affected.
How dangerous is this vulnerability really?
The flaw is rated as medium severity with a CVSS score of 6.9. An attacker can determine which author accounts exist without authentication and harvest profile data such as internal ID, name, slug, biography, and profile URL. At the time of publication, there were no signs of active exploitation in the wild.
I have already blocked other user enumeration paths – is that enough?
No. Websites that have already blocked classic paths such as the REST API user endpoint, the user XML sitemap, or the ?author=N redirect remain vulnerable through this WPGraphQL path. Only updating to WPGraphQL 2.15.1 or newer closes this specific vulnerability.
More security news
You might also be interested in
Critical Elementor Pro Flaw: Attackers Can Fully Take Over WordPress Sites
A file upload bug in Elementor Pro up to 4.2.1 allows RCE without login. Version 4.2.2 fixes the flaw – update now!
Pods Plugin: Critical Flaw Enables Admin Takeover, No Login
A critical flaw in the WordPress plugin Pods lets attackers overwrite admin passwords without login. Over 100,000 sites are affected.
miniOrange SAML SSO: Critical Bypass Turns Attackers Into Admins
Two critical auth bypasses in the miniOrange SAML SSO plugin allow forged SAML assertions—up to full WordPress admin access.