Description
WPGraphQL provides a GraphQL API for WordPress sites. Prior to 2.22.2, the updatePost mutation in src/Mutation/PostObjectUpdate.php checks only the collection-level edit_posts capability and the post author, but does not enforce the object-level edit_post capability or require publish_posts for public status transitions. An authenticated Contributor can therefore publish the Contributor's own draft without editorial approval or modify the Contributor's previously published post despite lacking edit_published_posts, while posts owned by other authors remain protected. This issue is fixed in version 2.22.2.
Published: 2026-09-23
Score: 5.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized publishing and modification of posts by Contributors
Action: Patch
AI Analysis

Impact

WPGraphQL’s updatePost mutation verified only a global edit_posts capability and the post author, omitting the finer‐grained object‑level edit_post check and the requirement for publish_posts to change a post’s status to public. Consequently, a user assigned the Contributor role could publish their own draft posts or alter a previously published post that they owned, while posts belonging to other authors remained protected. This flaw is a manifestation of CWE‑863, representing a missing authorization check that allows users to act beyond their intended privileges.

Affected Systems

The vulnerability affects the WPGraphQL WordPress plugin, vendor wp‑graphql, for all releases prior to version 2.22.2. Site operators using any plugin installation that has not yet been updated to 2.22.2 or newer are potentially impacted.

Risk and Exploitability

The CVSS score of 5.4 indicates moderate severity. Exploitation requires an authenticated Contributor account; the attack vector is limited to users who already have contributor access, so generic public exposure is not a factor, but the risk remains significant for sites relying on stricter editorial workflows. EPSS data is unavailable and the issue is not listed in CISA’s KEV catalog, suggesting limited active exploitation. Nonetheless, the ability to publish content without editorial approval can lead to defacement or misinformation on the site.

Generated by OpenCVE AI on September 23, 2026 at 15:49 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade WPGraphQL to version 2.22.2 or later, which implements the missing object‑level capability checks and restores the publish_posts requirement for status changes.
  • If an immediate upgrade is not feasible, reconfigure the WordPress Contributor role to remove the 'publish_posts' capability so that contributors can no longer publish drafts, thereby constraining the attack surface.
  • Deploy a supplemental security measure such as a GraphQL permission plugin or custom hook that enforces object‑level edit permissions for updatePost, ensuring that only the post author with appropriate capabilites can modify their posts.

Generated by OpenCVE AI on September 23, 2026 at 15:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-5mmc-8pc9-wggg WPGraphQL: Contributor can publish and modify posts without the required capabilities via updatePost
History

Sun, 27 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
First Time appeared Wordpress-extensions
Wordpress-extensions wpgraphql
Wpgraphql
Wpgraphql wpgraphql
Vendors & Products Wordpress-extensions
Wordpress-extensions wpgraphql
Wpgraphql
Wpgraphql wpgraphql

Wed, 23 Sep 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 23 Sep 2026 14:30:00 +0000

Type Values Removed Values Added
Description WPGraphQL provides a GraphQL API for WordPress sites. Prior to 2.22.2, the updatePost mutation in src/Mutation/PostObjectUpdate.php checks only the collection-level edit_posts capability and the post author, but does not enforce the object-level edit_post capability or require publish_posts for public status transitions. An authenticated Contributor can therefore publish the Contributor's own draft without editorial approval or modify the Contributor's previously published post despite lacking edit_published_posts, while posts owned by other authors remain protected. This issue is fixed in version 2.22.2.
Title WPGraphQL: Contributor can publish and modify posts without the required capabilities via updatePost
Weaknesses CWE-863
References
Metrics cvssV3_1

{'score': 5.4, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L'}


Subscriptions

Wordpress-extensions Wpgraphql
Wpgraphql Wpgraphql
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-23T16:21:35.694Z

Reserved: 2026-09-10T16:02:31.341Z

Link: CVE-2026-88974

cve-icon Vulnrichment

Updated: 2026-09-23T16:21:26.717Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-09-23T15:17:23.893

Modified: 2026-09-23T18:12:04.247

Link: CVE-2026-88974

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-27T11:45:55Z

Weaknesses