Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-54768

CVE-2026-54768: WPGraphQL Information Disclosure Flaw

CVE-2026-54768 is an information disclosure vulnerability in WPGraphQL that allows unauthenticated attackers to enumerate author accounts and access public profile data. This article covers technical details, affected versions, and mitigation.

Published:

CVE-2026-54768 Overview

CVE-2026-54768 affects WPGraphQL, a plugin that provides a GraphQL API for WordPress sites. Versions from 2.0.0 up to (but not including) 2.15.1 expose a deprecated user field on the SendPasswordResetEmailPayload type. An unauthenticated caller can invoke the sendPasswordResetEmail mutation and distinguish existing author-class accounts. The response also returns public profile fields for those accounts. The issue is an observable discrepancy information exposure flaw [CWE-204] and is fixed in WPGraphQL 2.15.1.

Critical Impact

Unauthenticated attackers can enumerate valid WordPress author-class usernames and harvest public profile data through the GraphQL API, enabling targeted credential attacks.

Affected Products

  • WPGraphQL plugin for WordPress, versions 2.0.0 through 2.15.0
  • WordPress sites exposing the WPGraphQL endpoint publicly
  • Deployments relying on the deprecated user field in SendPasswordResetEmailPayload

Discovery Timeline

  • 2026-07-31 - CVE-2026-54768 published to NVD
  • 2026-08-03 - Last updated in NVD database

Technical Details for CVE-2026-54768

Vulnerability Analysis

WPGraphQL exposes the sendPasswordResetEmail mutation for initiating password recovery flows. The mutation returns a SendPasswordResetEmailPayload object that includes a deprecated user field. When a caller supplies a username or email belonging to an author-class account, the response resolves the user field with public profile data. When the account does not exist, the field resolves to null. This observable behavioral difference lets attackers determine which usernames or email addresses map to real accounts without authenticating.

The issue is classified as CWE-204 (Observable Response Discrepancy). It does not compromise passwords directly, but it removes a barrier that normally protects account enumeration. Attackers gain a reliable oracle for building target lists prior to brute-force or credential-stuffing attempts.

Root Cause

The mutation resolver populates the deprecated user field with author-visible profile data before returning to the caller. The resolver does not equalize responses between valid and invalid inputs. Because the endpoint is reachable without authentication, any unauthenticated GraphQL client can observe the discrepancy across many candidate identifiers.

Attack Vector

An attacker sends unauthenticated GraphQL mutation requests to the WPGraphQL endpoint, iterating through candidate usernames or email addresses. Responses containing a populated user object confirm account existence and disclose public profile fields such as display name, slug, and other author metadata. The attack requires only network access to the WordPress site and no user interaction.

See the GitHub Security Advisory GHSA-jhh7-832h-f8hv for the vendor's technical description.

Detection Methods for CVE-2026-54768

Indicators of Compromise

  • High volume of sendPasswordResetEmail mutation requests from a single source IP or narrow IP range
  • GraphQL queries that explicitly select the deprecated user field on SendPasswordResetEmailPayload
  • Sequential or dictionary-style variation in the username or email argument across short time windows
  • Unauthenticated POST traffic to /graphql with password-reset payloads outside normal user behavior

Detection Strategies

  • Parse web server and application logs for POST requests to the GraphQL endpoint containing sendPasswordResetEmail and user { ... } selections.
  • Rate-alert on repeated password-reset mutations from the same client identifier within a short interval.
  • Correlate GraphQL mutation activity with subsequent WordPress login failures from the same source to identify enumeration-to-brute-force chains.

Monitoring Recommendations

  • Enable verbose logging on the WPGraphQL endpoint including request bodies and response status.
  • Forward WordPress and reverse-proxy logs to a centralized analytics platform for baselining and anomaly detection.
  • Track the installed WPGraphQL version across all WordPress properties and alert when versions below 2.15.1 are detected.

How to Mitigate CVE-2026-54768

Immediate Actions Required

  • Upgrade WPGraphQL to version 2.15.1 or later on every WordPress site running the plugin.
  • Inventory all WordPress deployments and confirm the WPGraphQL endpoint is not exposed to untrusted networks unless required.
  • Review recent access logs for enumeration patterns against the sendPasswordResetEmail mutation and rotate credentials for any exposed author accounts.

Patch Information

The maintainers fixed the issue in WPGraphQL 2.15.1 by removing the disclosure path on the deprecated user field. Details are in the GitHub Release wp-graphql v2.15.1 and the GitHub Security Advisory GHSA-jhh7-832h-f8hv.

Workarounds

  • Restrict access to the /graphql endpoint using web application firewall rules or IP allow-lists until the plugin is upgraded.
  • Apply rate limiting to sendPasswordResetEmail mutations at the reverse proxy or WAF layer to slow enumeration attempts.
  • Disable the WPGraphQL plugin if it is not actively required by the site's functionality.
bash
# Configuration example: upgrade WPGraphQL via WP-CLI
wp plugin update wp-graphql --version=2.15.1
wp plugin get wp-graphql --field=version

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.