Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as Editor with Kirki edit access
-
ExploitSend crafted PUT to /wp-json/kirki/v1/pages/{page_id}
-
ExecutionSet unrestricted post_status on an unowned post
-
ImpactExpose private/draft content or unpublish/alter any post type
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 | Requires an authenticated WordPress user whose role holds Kirki edit access - granted to the Editor role by default - on a site running Kirki plugin before 6.4.1 with its page REST API (PUT /wp-json/kirki/v1/pages/{page_id} and the save_page_data, duplicate, and delete handlers in PageController.php) reachable. No user interaction and no non-default configuration are needed because Editors receive the access out of the box. The limiting factor is the authentication barrier: the attacker must already hold an Editor-level (or equivalently Kirki-authorized) account, so this is not anonymously exploitable; the required privilege is the only effective constraint beyond having the vulnerable version installed. Updating to 6.4.1 removes the flaw. |
| Impact | This is a genuine but moderate-priority issue rather than an inflated high-CVSS finding. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) scores 7.2 (High) and is network-reachable with low complexity, but PR:L is the decisive limiter: exploitation requires an authenticated account that has been granted Kirki edit access, which the description says is the Editor role by default - not an anonymous remote attacker. The dominant impact is integrity (VI:H): an Editor can alter title, slug, and publication status of any post, post type, or WooCommerce product they do not own; confidentiality (VC:L) and availability (VA:L) are secondary, covering exposure of private/draft content and removal of published content. The vuln.today Decision label is 'this_week', consistent with a real but non-emergency fix window. No CISA KEV listing is present, no EPSS probability was supplied, and there is no confirmed working exploit code - so there is no evidence of active or widespread exploitation. The missing EPSS score means automated exploitation likelihood cannot be weighed; treat the this_week label plus Editor-privilege requirement as the governing signals. Net: a real authorization flaw worth patching this week, most relevant on multi-author, membership, or WooCommerce sites where many semi-trusted users hold the Editor role. |
| Exploit ScenarioDerived | An attacker holding a WordPress Editor account (or any role granted Kirki edit access) on a site running Kirki before 6.4.1 sends a crafted PUT request to /wp-json/kirki/v1/pages/{page_id} referencing a post they do not own. Because the handler enforces only a coarse role-to-access middleware check and no per-object capability check, the attacker rewrites the unrestricted post_status to publish a private/draft post (exposing content) or unpublish/alter published posts, custom post types, or WooCommerce products. No public exploit code is identified at time of analysis; a VulnCheck advisory documents the flaw, and AV:N/AC:L make the network request itself trivial once authenticated. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Broken object-level access control in the Kirki plugin for WordPress before 6.4.1 lets any user who holds Kirki edit access - granted to the Editor role by default - rewrite the title, slug and post_status of arbitrary non-trashed posts, including custom post types and WooCommerce products they do not own, exposing private or draft content or silently unpublishing live content. The PUT /wp-json/kirki/v1/pages/{page_id} route and the save_page_data, duplicate and delete handlers in PageController.php apply only a coarse role-to-access middleware check and never perform a per-object WordPress capability check. Exploitation requires an authenticated account with Kirki edit access (CVSS vector PR:L); no public exploit code and no confirmed active exploitation (CISA KEV) were identified at time of analysis, and the vendor has released 6.4.1, so remediation is prioritized for this week rather than treated as an emergency.
RemediationAI
Vendor-released patch: Kirki 6.4.1 - updating to that version removes the flaw, per the vendor changelog at https://wordpress.org/plugins/kirki/#developers, and is the only complete fix identified; schedule it within this week's patch cycle rather than as an emergency. Where the update cannot be applied immediately, the practical exposure reducer is to narrow who holds Kirki edit access, since the default grant to the Editor role is what makes the missing per-object check reachable; the trade-off is that Editors lose the plugin's page-building and customizer management capability until the update lands. No further workaround is stated in the available sources.
Affected VersionsENISA
Affected Packages
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
Kirki is a WordPress plugin that supplies a customizer/theme-options framework plus a companion REST surface for managing its own "pages"; the affected code lives in PageController.php, registered under the /wp-json/kirki/v1/pages namespace. The root cause class is CWE-862 (Missing Authorization): the controller checks only that the caller's role maps to Kirki edit access through a coarse middleware gate, then operates directly on the page_id supplied in the request path or body without calling WordPress object-level capability functions such as current_user_can( 'edit_post', $id ) or the corresponding delete/publish checks. Because the post_status field is passed through unrestricted, a caller can move any non-trashed object - standard posts, pages, custom post types and WooCommerce products - between draft, private and published states, or alter its title and slug. The vendor CPE cpe:2.3:a:themeum:kirki covers all releases before the 6.4.1 fix; the public CNA scoring is CVSS:4.0 7.2 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:L), while the internally assessed CVSS:3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L) agrees on the shape of the issue: high integrity impact, limited confidentiality and availability impact, network reachable, and gated only by a low-privileged authenticated account.
Know when Kirki 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N
Authenticated Editor-level Kirki access gives PR:L over a low-complexity network REST route (AV:N/AC:L); integrity is high since any post's status/title/slug can be altered, while confidentiality and availability are only partial.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Kirki plugin for WordPress before 6.4.1 contains a broken object-level access control vulnerability in its page REST API, where the PUT /wp-json/kirki/v1/pages/{page_id} route and the save_page_data, duplicate, and delete handlers in PageController.php rely only on a coarse role-to-access middleware check without performing a per-object WordPress capability check. A user with Kirki edit access, granted to the Editor role by default, can exploit this flaw to modify the title, slug, and publication status of any non-trashed post of any post type, including custom post types and WooCommerce products they do not own, exposing private or draft content or removing published content by manipulating the unrestricted post_status field.
Executive ViewAI
The Kirki plugin for WordPress, used on your public-facing websites, contains a high-severity access control flaw (CVE-2026-112347) that allows any Editor-level user to modify or unpublish arbitrary content, including private drafts and WooCommerce products. This affects content integrity and could lead to data exposure or business disruption, particularly for e-commerce operations, but requires an authenticated account and no active exploitation has been observed.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Server-Side Request Forgery in the Kirki WordPress plugin before 6.0.12 allows unauthenticated attackers to coerce the s
SQL injection in the Kirki WordPress plugin before version 6.0.13 enables unauthenticated remote attackers to read arbit
Broken access control in the Themeum Kirki WordPress customizer framework (versions up to and including 6.0.13) allows r
PHP Object Injection in the Kirki WordPress plugin before 6.0.13 enables a two-stage attack where unauthenticated users
Stored cross-site scripting in the Kirki WordPress plugin before 6.3.0 allows unauthenticated remote attackers to persis
Arbitrary file upload via malformed archive in the Kirki WordPress customizer plugin (all versions before 6.2.3) allows
Stored cross-site scripting in the Kirki WordPress plugin affects versions 6.0.0 through 6.3.0, which allow SVG files to
SQL injection in the Kirki WordPress plugin (versions 6.0.0 through <6.3.0) enables authenticated users with editor-leve
Unauthenticated shortcode injection in Kirki WordPress plugin (all versions before 6.2.1) allows any remote attacker to
Object injection in the Themeum Kirki WordPress customizer framework (all versions through 6.0.12) allows attackers to a
Blind SQL injection in the Themeum Kirki WordPress customizer framework (all versions up to and including 6.0.12) lets r
Kirki WordPress Customizer Framework plugin before 6.0.14 exposes registered user email addresses, comment author emails
EUVD-2026-113951
GHSA-xmxv-2997-276g
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB