mediumCVSS 5.4Vulnerability

CVE-2026-88974

## Summary WPGraphQL 2.19.0 contains an authorization bypass in the `updatePost` mutation. An authenticated WordPress Contributor can change one of their own draft posts to `PUBLISH` despite lacking the `publish_posts` capability. The same mutation also permits the Contributor to modify their own previously published posts despite lacking `edit_published_posts` and failing WordPress's object-level `edit_post` capability check. This bypasses the standard WordPress editorial workflow. The WordPress REST API correctly rejects the equivalent operations for the same user. ## Affected software - Plugin: WPGraphQL - Plugin slug: `wp-graphql` - Confirmed affected version: `2.19.0` - Plugin URL: https://wordpress.org/plugins/wp-graphql/ - Repository: https://github.com/wp-graphql/wp-graphql - WordPress version used for testing: `7.0.2` - WPGraphQL configuration: default settings Only version 2.19.0 is claimed as confirmed because that is the version tested. The same authorization pattern appears in earlier source history, but those releases were not independently tested. ## Vulnerability type - Broken access control / authorization bypass - CWE-863: Incorrect Authorization - OWASP 2021: A01 – Broken Access Control - Minimum required role: Contributor ## Technical cause `src/Mutation/PostObjectUpdate.php` checks only the post type's collection-level `edit_posts` capability: ```php if ( ! isset( $post_type_object->cap->edit_posts ) || ! current_user_can( $post_type_object->cap->edit_posts ) ) { // Reject request. } ``` It separately prevents a user from changing another author's post, but it does not perform WordPress's object-level check: ```php current_user_can( $post_type_object->cap->edit_post, $post_id ) ``` It also does not check `publish_posts` when the requested update changes the post status to `publish`. The mutation passes the requested status directly to `wp_update_post()`, which expects its caller to have already enforced authorization. By compar

Properties

ghsa_id
GHSA-5mmc-8pc9-wggg
severity
medium
summary
WPGraphQL: Contributor can publish and modify posts without the required capabilities via updatePost
cvss_score
5.4
cve_id
CVE-2026-88974
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L
signal_observed_at
2026-09-23T22:45:22+00:00
is_ghsa_only
false
ghsa_published
2026-09-23T14:13:04Z
source_url
https://github.com/advisories/GHSA-5mmc-8pc9-wggg
ghsa_updated
2026-09-23T14:13:04Z

Related Entities (4)

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]composer/wp-graphql/wp-graphql

AFFECTS (1)

[Software]composer/wp-graphql/wp-graphql

HAS_WEAKNESS (1)

[Weakness]Incorrect Authorization

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-88974 (CVSS 5.4) — Ninja Signal Threat Intelligence | Ninja Signal