Skip to main content

WPGraphQL CVE-2026-119702

| EUVDEUVD-2026-114107 MEDIUM
Missing Authorization (CWE-862)
2026-10-30 VulnCheck GHSA-wj7h-xjr7-93c6
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach public WPGraphQL endpoint
  2. Delivery
    Enumerate/guess hidden post ID
  3. Exploit
    Send unauthenticated createComment mutation
  4. Execution
    Bypass missing post-status authorization check
  5. Impact
    Leak draft/private post title via moderator email

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the WPGraphQL plugin (≤2.24.0) exposed on a reachable GraphQL endpoint AND the site configured to allow anonymous comments (WordPress 'comment_registration' option disabled) - the advisory states the entire surface is reachable without logging in only on such sites. The attacker must also know or enumerate a target post ID, which the vulnerable mutation itself facilitates because non-existent, hidden, and comment-closed posts each returned distinguishable responses. The primary disclosure (post title leakage) further depends on the moderator notification email being enabled, which is WordPress default behaviour. The key LIMITING factor is comment configuration: on sites that require registration/login to comment, unauthenticated exploitation is blocked, and the only complete fix per the vendor is updating to 2.24.1 (disabling comments site-wide is the only configuration workaround and sacrifices comments).

Impact

This is a genuine but moderate-priority information-disclosure and integrity issue rather than a critical remote-code-execution threat. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes a network-reachable, low-complexity, unauthenticated flaw, which sounds alarming, but the impact metrics are deliberately modest: only Low confidentiality and Low integrity, with no availability impact (VC:L/VI:L/VA:N), yielding a 6.9 medium score. The most meaningful real-world impact confirmed by the GHSA advisory is disclosure of titles of unpublished (draft/private) posts via the moderator notification email, plus post-ID enumeration across statuses and forgeable comment date/type metadata - none of which grants data modification beyond inserting moderation-queue comments. No EPSS score was supplied, so statistical exploitation likelihood cannot be assessed. The CVE is NOT in CISA KEV and there is no confirmed public exploit, so there is no evidence of active exploitation. The vuln.today decision label is 'this_month', consistent with a patch-on-normal-cycle priority rather than an emergency. One important nuance: exploitation is gated by site configuration - the advisory explicitly states the full surface is only reachable without login on a site that allows anonymous comments - which the bare CVSS PR:N/UI:N vector does not convey; defenders should weigh this limiting factor.

Exploit ScenarioDerived

An unauthenticated attacker sends a crafted createComment GraphQL mutation to a WPGraphQL-enabled site, targeting a guessed post ID that is actually a draft or private post. Because versions ≤2.24.0 only checked that the post existed and had comments open - not whether the caller could see it - the comment is accepted and the resulting wp_notify_moderator() email leaks the hidden post's title off-site. No public exploit has been identified at time of analysis, though the mechanism is fully documented in the vendor's GHSA advisory and the fix commit.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 30, 2026

Unauthenticated callers can create comments on WordPress content they are not allowed to see through the createComment GraphQL mutation in WPGraphQL 2.24.0 and earlier, because the mutation validated only that the target post existed and had comments open, not that the caller could read it. On sites configured to allow guest comments, an attacker who supplies or enumerates a post ID can attach comments to draft, pending, private, trashed or password-protected posts, and each new comment fires wp_notify_moderator(), whose subject line contains the post title - so hidden titles are emailed off the site. The same mutation also returns distinguishable error messages for non-existent, hidden and comment-closed IDs (enabling post ID enumeration) and let any caller set a comment's date and type, permitting backdated comments and comments filed as pingbacks or trackbacks; no public exploit code or CISA KEV entry was identified at time of analysis, and the case is assessed as a moderate-priority information-disclosure and integrity issue rather than a code-execution threat. Sites that require registration or login before commenting block unauthenticated exploitation of the write path, and the vendor's only complete fix is upgrading to 2.24.1.

RemediationAI

Vendor-released patch: 2.24.1 - upgrade WPGraphQL to 2.24.1 (release https://github.com/wp-graphql/wp-graphql/releases/tag/wp-graphql%2Fv2.24.1, fix commit https://github.com/wp-graphql/wp-graphql/commit/b9da32bd8e6025e19a9b04acaa129978eba71177, advisory https://github.com/wp-graphql/wp-graphql/security/advisories/GHSA-4vgv-vvxr-9fh9). The vendor states there is no configuration workaround other than disabling comments site-wide, which closes the mutation's write path at the cost of losing comments entirely; where the GraphQL endpoint cannot be patched immediately, removing public reachability of that endpoint achieves the same effect with the same kind of functional cost, since reachability of the endpoint is a precondition for exploitation. After updating, any import, migration or seeding scripts that created comments on unpublished content through the API will stop working and must run as a user who can read that content, and clients that set a comment date must run as a user holding moderate_comments, otherwise the date is ignored and the comment receives the current time (the advisory notes this becomes a hard error in v3).

Affected VersionsENISA

WPGraphQL 0 <2.24.1

Affected Packages

euvd wpgraphql fix: 2.24.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

WPGraphQL is a GraphQL plugin for WordPress that exposes the site's content model through mutations and connections. CVE-2026-119702 is a CWE-862 missing authorization flaw (the vendor advisory also tags CWE-20 input validation and CWE-204 observable response discrepancy) in the createComment mutation's handling of its commentOn argument. WordPress core's own comment path, wp_handle_comment_submission(), refuses comments on trashed posts, on statuses that are neither public nor private without the read_post capability, on password-protected posts, and on posts with comments closed; the plugin replicated only the existence and comment_status checks, so any caller reaching the endpoint could write to content in any status. Two secondary weaknesses amplify it: the mutation's error responses differed for a non-existent ID, an existing but hidden post, and a visible post with comments closed, turning it into a post-ID oracle across every status; and CommentMutation::prepare_comment_object() accepted caller-supplied date and type without checking moderate_comments, letting a comment be placed anywhere in a thread's history or filed as a pingback/trackback that themes and plugins render differently. The disclosure vector runs through wp_notify_moderator(), whose notification subject includes the title of the commented-on post. The fix adds assert_can_comment_on(), which mirrors core: hidden statuses, trashed posts, password-protected posts and non-existent IDs all return the identical message 'The ID of the node to comment on is invalid', a read_post-capable caller gets a distinct explanation for draft/pending content, and comments-closed is only reported for content the caller can already read; date and type are now silently dropped for callers lacking moderate_comments (an error is planned for v3).

Know when Wpgraphql gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Unauthenticated network request with no user interaction (PR:N/UI:N/AC:L) on default anonymous-comment sites; impact limited to hidden-title/ID disclosure (C:L) and inserting/forging comments (I:L), no availability effect.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

WPGraphQL before 2.24.1 contains a missing authorization vulnerability in the createComment mutation that allows unauthenticated attackers to comment on non-public posts by bypassing post status checks. Attackers can attach comments to draft, private, trashed, or password-protected posts to leak hidden titles via moderator notifications, enumerate post IDs, and backdate comments or mark them as pingbacks.

Threat Intelligence Overview

EPSS Score
0.4%
Top 70% exploitable
Prevalence
Medium
popular headless-WordPress GraphQL plugin, common but not universally deployed
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2019-9879 CRITICAL POC
9.8 Jun 10

The WPGraphQL 0.2.3 plugin for WordPress allows remote attackers to register a new user with admin privileges, whenever

CVE-2019-9880 CRITICAL POC
9.1 Jun 10

An issue was discovered in the WPGraphQL 0.2.3 plugin for WordPress. Rated critical severity (CVSS 9.1), this vulnerabil

CVE-2021-47959 HIGH POC
8.7 May 15

WordPress Plugin WPGraphQL 1.3.5 contains a denial of service vulnerability that allows unauthenticated attackers to exh

CVE-2019-9881 MEDIUM POC
5.3 Jun 10

The createComment mutation in the WPGraphQL 0.2.3 plugin for WordPress allows unauthenticated users to post comments on

CVE-2026-40762 HIGH
7.5 Jun 15

Unauthenticated SQL injection in the WPGraphQL WordPress plugin versions prior to 2.11.1 allows remote attackers to inje

CVE-2026-119701 MEDIUM
6.9 Oct 30

Unauthenticated email flooding in WPGraphQL 2.24.0 and earlier lets a remote attacker send roughly a thousand password r

CVE-2026-119700 MEDIUM
6.9 Oct 30

WPGraphQL 2.24.0 and earlier leak object existence through four GraphQL write mutations - deleteMediaItem, updateMediaIt

CVE-2026-119699 MEDIUM
6.9 Oct 30

Unbounded automatic persisted-query storage in WPGraphQL Smart Cache 2.3.2 and earlier lets unauthenticated remote attac

CVE-2025-68604 MEDIUM
5.4 May 07

Cross-site request forgery (CSRF) in WPGraphQL plugin versions up to 2.5.3 allows unauthenticated attackers to perform u

CVE-2026-109703 MEDIUM
5.3 Oct 13

Unauthenticated retrieval of embedded sensitive data is possible on WordPress sites running the WPGraphQL plugin through

CVE-2023-23684 MEDIUM
4.4 Nov 13

Server-Side Request Forgery (SSRF) vulnerability in WPGraphQL.14.5. Rated medium severity (CVSS 4.4), this vulnerability

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy