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.
References5
- github.com/wp-graphql/wp-graphql/commit/55441663eaa33c3f2e05de0…
- github.com/wp-graphql/wp-graphql/pull/4270
- github.com/wp-graphql/wp-graphql/releases/tag/wp-graphql%2Fv2.2…
- github.com/wp-graphql/wp-graphql/security/advisories/GHSA-5mmc-…
- github.com/wp-graphql/wp-graphql/security/advisories/GHSA-5mmc-…
Metrics
- CVSS 3.1
-
5.4
MEDIUM
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L - EPSS — exploit probability
- 0% percentile: 32 · as of 9 November 2026
- CWE
- CWE-863
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.