{"id":"CVE-2026-119702","kind":"vulnerability","aliases":["CVE-2026-119702"],"related":[],"title":"WPGraphQL: unauthenticated comments on hidden WordPress posts before 2.24.1","description":"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.","summary":"WPGraphQL's createComment mutation skips post status checks, so anyone can comment on draft, private, trashed or password-protected posts. An attacker can leak hidden post titles through moderator notifications, enumerate post IDs, and backdate comments or mark them as pingbacks.","severity":"medium","cvss":6.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","wordpress","wpgraphql"],"not_affected_if":["wpgraphql-2.24.1-or-later"],"how_to_check":"- Check the installed WPGraphQL plugin version in the WordPress admin plugins list, or run `wp plugin get wp-graphql --field=version` with WP-CLI.\n- Confirm whether the site exposes a GraphQL endpoint (usually `/graphql`) that accepts comment mutations.","fix":"- WPGraphQL: move to `2.24.1` or later.","status":"open","published_at":"2026-10-30T16:17:50+00:00","first_seen_at":"2026-10-30T16:31:26+00:00","triaged_at":"2026-10-30T16:32:12+00:00","updated_at":"2026-10-30T16:32:12+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-30T16:32:12Z","model":"claude-haiku-5-5","output":{"fix":"- WPGraphQL: move to `2.24.1` or later.","reach":"internet","title":"WPGraphQL: unauthenticated comments on hidden WordPress posts before 2.24.1","impact":"low","summary":"WPGraphQL's createComment mutation skips post status checks, so anyone can comment on draft, private, trashed or password-protected posts. An attacker can leak hidden post titles through moderator notifications, enumerate post IDs, and backdate comments or mark them as pingbacks.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","wpgraphql","self-hosted"],"confidence":0.6,"fix_status":"available","needs_auth":"no","worst_case":"Attackers comment on hidden posts and leak draft titles","analyst_note":"","how_to_check":"- Check the installed WPGraphQL plugin version in the WordPress admin plugins list, or run `wp plugin get wp-graphql --field=version` with WP-CLI.\n- Confirm whether the site exposes a GraphQL endpoint (usually `/graphql`) that accepts comment mutations.","plain_action":"","needs_analyst":false,"not_affected_if":["wpgraphql-2.24.1-or-later"],"who_is_affected":"Sites running WPGraphQL below 2.24.1 that expose the GraphQL endpoint to the internet are exposed, since the mutation needs no login. Sites that do not use WPGraphQL, or that run a fixed version, are not affected. The sources do not say whether managed hosting changes exposure.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000707,"input_tokens":4163,"output_tokens":582,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-119702':12A,15A '-2026':11A,14A '2.24.1':9A,66C 'allow':77C 'anyon':31B 'attach':94C 'attack':44B,79C,92C 'author':70C 'backdat':57B,116C 'bypass':88C 'check':29B,91C 'comment':3A,33B,58B,81C,95C,117C 'contain':67C 'createcom':24B,74C 'cve':10A,13A 'draft':35B,97C 'enumer':53B,112C 'hidden':5A,47B,107C 'host':19B 'id':55B,114C 'leak':46B,106C 'mark':60B,119C 'miss':69C 'moder':51B,110C 'mutat':25B,75C 'non':84C 'non-publ':83C 'notif':52B,111C 'packag':16B 'password':40B,102C 'password-protect':39B,101C 'pingback':63B,122C 'post':7A,27B,42B,48B,54B,86C,89C,104C,113C 'privat':36B,98C 'protect':41B,103C 'public':85C 'self':18B 'self-host':17B 'skip':26B 'status':28B,90C 'titl':49B,108C 'trash':37B,99C 'unauthent':2A,78C 'via':109C 'vulner':71C 'wordpress':6A,20B 'wpgraphql':1A,21B,22B,64C","nicknames":[],"mitigations":[],"who_affected":"Sites running WPGraphQL below 2.24.1 that expose the GraphQL endpoint to the internet are exposed, since the mutation needs no login. Sites that do not use WPGraphQL, or that run a fixed version, are not affected. The sources do not say whether managed hosting changes exposure.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"first_public_at":"2026-10-30T16:17:50+00:00","kev":null,"cvss_vector":"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-119702","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-119702","severity":null,"published_at":"2026-10-30T16:17:50+00:00","modified_at":"2026-10-30T16:17:50+00:00","first_seen_at":"2026-10-30T16:31:26+00:00","fetched_at":"2026-10-30T16:31:26+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}