Description
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.
Published: 2026-10-30
Score: 7.2 High
EPSS: n/a
KEV: No
Impact: Unauthorized Post Modification via REST API
Action: Patch Update
AI Analysis

Impact

Kirki plugin for WordPress contains a broken object‑level access control flaw in its page REST API. The PUT /wp-json/kirki/v1/pages/{page_id} route, as well as the save_page_data, duplicate, and delete handlers in PageController.php, perform only a coarse role check and skip per‑object capability verification. An authenticated user who has Kirki edit access—which is granted to the default Editor role—can use this endpoint to change the title, slug, and publication status of any non‑trashed post, regardless of ownership. This allows an attacker to expose private or draft content, delete published items, or otherwise manipulate content that they should not be able to control.

Affected Systems

The vulnerability affects the Kirki WordPress plugin before version 6.4.1. WordPress sites that have this plugin installed and are running a version older than 6.4.1 are at risk. All post types, including custom post types and WooCommerce products, are potentially vulnerable.

Risk and Exploitability

The formal CVSS score of 7.2 indicates a medium‑to‑high severity problem. Because the exposed REST endpoint requires only that the user possess editor‑level permissions to Kirki, an attacker with legitimate Editor privileges can exploit this without additional privileges. The EPSS score is not available, and the vulnerability is not flagged in the CISA KEV catalog, suggesting that active exploitation may not yet be widespread but the vector is straightforward and the impact significant. Attackers with access to a non‑admin editor role can directly issue authenticated HTTP PUT requests to modify any post object.

Generated by OpenCVE AI on October 30, 2026 at 15:23 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Kirki to version 6.4.1 or later to apply the vendor’s fix.
  • If an upgrade is not immediately possible, disable the Kirki page REST endpoints or revoke the Editor role from users who do not require it, thereby blocking the PUT /wp-json/kirki/v1/pages/{page_id} route.
  • Restrict Editor role privileges in WordPress or replace the Editor role with a custom role that lacks Kirki edit access, ensuring that only trusted users can edit posts.

Generated by OpenCVE AI on October 30, 2026 at 15:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 30 Oct 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 30 Oct 2026 14:00:00 +0000

Type Values Removed Values Added
Description 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.
Title Kirki WordPress Plugin < 6.4.1 Broken Object-Level Access Control via Page API
Weaknesses CWE-862
References
Metrics cvssV3_1

{'score': 7.6, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L'}

cvssV4_0

{'score': 7.2, 'vector': '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'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-10-30T14:04:03.894Z

Reserved: 2026-10-19T14:41:46.702Z

Link: CVE-2026-112347

cve-icon Vulnrichment

Updated: 2026-10-30T14:03:57.013Z

cve-icon NVD

Status : Received

Published: 2026-10-30T14:16:37.903

Modified: 2026-10-30T14:16:37.903

Link: CVE-2026-112347

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-30T15:30:16Z

Weaknesses