CVE-2026-12904: Kadence Blocks IDOR Vulnerability – Unauthorized Optimizer Data Access
A WordPress plugin called Kadence Blocks contains a flaw that lets authenticated users with basic contributor permissions view or delete optimization analysis data they shouldn't have access to. The vulnerability stems from a mismatch: the plugin checks whether a user can edit a post based on one identifier, but then actually reads or deletes data based on a different, attacker-supplied file path. An attacker can exploit this by providing their own post ID (which passes permission checks) along with a victim's actual file path, gaining unauthorized access to that victim's optimizer records. This affects Kadence Blocks versions up to 3.7.7.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 4.3 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
- Weaknesses (CWE)
- CWE-639
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-07-01 / 2026-07-01
NVD description (verbatim)
The Kadence Blocks – Gutenberg Blocks for Page Builder Features plugin for WordPress is vulnerable to Insecure Direct Object Reference in versions up to and including 3.7.7. This is due to a mismatch between the object used for authorization and the object actually accessed in the Optimize_Rest_Controller's create_item(), get_item(), delete_item(), and bulk_delete_items() endpoints — authorization is checked via current_user_can('edit_post'/'delete_post', $post_id) against the user-supplied post_id, while the storage layer keys analysis records on sha256($post_path) from a separately supplied, attacker-controlled post_path parameter, with no enforcement that post_path corresponds to post_id. This makes it possible for authenticated attackers, with Contributor-level access and above, to read or delete optimizer analysis records belonging to posts owned by other users by submitting their own post_id (which passes the capability check) together with the victim post's path.
20 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-12904 is an Insecure Direct Object Reference (IDOR) vulnerability in the Kadence Blocks Gutenberg plugin's Optimize_Rest_Controller REST endpoints. The authorization logic validates user capabilities against a supplied post_id using standard WordPress capability checks (current_user_can('edit_post'/'delete_post', $post_id)), but the underlying storage retrieval uses a sha256 hash of an independently supplied post_path parameter with no validation that the two correspond. The affected endpoints—create_item(), get_item(), delete_item(), and bulk_delete_items()—permit an authenticated contributor-level user to bypass access controls by submitting a post_id they own alongside a victim's post path, resulting in unauthorized reads or deletions of optimizer analysis records. The vulnerability requires user authentication and intentional parameter manipulation but no multi-step interaction or user involvement from the victim.
Business impact
The exposure is narrowly scoped to optimizer analysis data rather than post content itself, limiting direct confidentiality or integrity risk to published content. However, organizations relying on Kadence Blocks for page optimization workflows may face data leakage of analysis records, competitive intelligence about site optimization strategies, or disruption of analysis workflows through deletion. The requirement for at least Contributor-level access means the threat is primarily internal—staff accounts or compromised low-privilege user accounts become a pivot point. Sites with open user registration or loosely managed contributor roles face elevated risk.
Affected systems
Kadence Blocks – Gutenberg Blocks for Page Builder Features plugin versions up to and including 3.7.7 running on WordPress. The vulnerability requires the REST API to be enabled and the plugin to be activated. Any WordPress installation using this plugin to manage page optimization and permitting contributor-level accounts is in scope.
Exploitability
Exploitation is straightforward for an attacker with valid Contributor credentials or higher. No special tooling, zero-day techniques, or user interaction is required—an attacker need only craft REST API requests to the affected endpoints with a combination of a post_id they own and a victim's post_path. However, the attacker must already be authenticated, which requires either a valid account on the target site or compromise of one. Discovery of victim post paths may require reconnaissance but is not hidden in typical WordPress environments. The barrier to exploitation is low once access is obtained, but initial access is a prerequisite.
Remediation
Update Kadence Blocks to a patched version above 3.7.7 (verify against the vendor advisory for the specific fixed version). The core fix should enforce that the post_path parameter is validated to correspond to the post_id being authorized, or eliminate the mismatch by keying all storage and retrieval on the post_id alone. Organizations unable to patch immediately should audit user accounts with Contributor or higher roles and restrict REST API access to trusted internal networks if possible.
Patch guidance
Monitor Kadence Blocks release notes and the official WordPress plugin repository for version 3.7.8 or later. Apply patches during low-traffic periods to avoid disrupting active page-building workflows. Verify the vendor advisory to confirm that the patched version specifically addresses the IDOR in the Optimize_Rest_Controller endpoints. Test in a staging environment before production deployment to ensure optimizer functionality and REST API behavior remain intact.
Detection guidance
Review WordPress REST API logs for requests to /wp-json/kb-optimize/v1/* endpoints that contain post_id and post_path parameters where the post_id does not align with the authenticated user's owned posts, or where the post_path belongs to a post owned by a different user. Monitor for bulk_delete_items requests from Contributor accounts targeting posts outside their ownership. Enable WordPress logging and REST API audit plugins to capture parameter details. Check for suspicious deletions of optimizer records coinciding with authenticated sessions from unexpected user accounts.
Why prioritize this
Although the CVSS score is MEDIUM (4.3), prioritize patching based on your organization's account governance practices. If you maintain strict Contributor role management and monitor user provisioning, the risk is lower. If you have open registration, loose contributor access, or high-value competitive optimization data, prioritize updates. The vulnerability is not in the public KEV catalog, suggesting active exploitation has not been widely reported, but the logic flaw is discoverable and the barrier to exploitation is low.
Risk score, explained
CVSS 4.3 reflects the confidentiality and integrity impact (unauthorized read/delete of analysis data) balanced against the requirement for authentication and post-owner involvement. The score does not account for the full organizational impact if contributor-level accounts are compromised or accounts are created by malicious insiders. The vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N indicates network-accessible exploitation with low attack complexity, low privilege requirement, no user interaction, and limited scope—but the impact is integrity (unauthorized deletion) only; confidentiality is not directly compromised by the CVSS vector, though information leakage is possible in practice.
Frequently asked questions
Can an attacker exploit this without a valid WordPress account?
No. The vulnerability requires at least Contributor-level authentication. An attacker must either possess valid credentials or successfully compromise an account that has been granted Contributor or higher permissions. This limits the threat primarily to internal actors or compromised user accounts rather than unauthenticated external threats.
Does this vulnerability expose actual post content or only optimization analysis?
Only optimizer analysis records are affected. The vulnerability does not grant access to post content, drafts, or other sensitive metadata. However, optimizer analysis may contain information about site performance strategies or internal optimization configurations that could be valuable to competitors.
Is there a workaround if I cannot patch immediately?
Disable REST API access for Contributor-level accounts if your workflow permits, or restrict REST API endpoints via a Web Application Firewall or HTTP authentication layer. Audit and minimize the number of Contributor accounts on your site. Monitor REST API logs for suspicious parameter combinations. These measures reduce but do not eliminate risk; patching is the definitive fix.
How do I verify that a patch actually fixes this issue?
Consult the vendor's release notes or security advisory for the patched version number. The fix should explicitly state that post_path validation has been implemented to ensure it corresponds to the authorized post_id, or that the storage layer no longer decouples authorization from data access. Test the patch in a non-production environment before deploying.
This analysis is based on the published CVE record and does not constitute professional security advice. Verify all patch versions, affected systems, and remediation steps against official vendor advisories and your specific environment. SEC.co assumes no liability for decisions made based on this intelligence. Exploit code or weaponized proofs-of-concept are not provided. Organizations should conduct independent security assessments and consult qualified security professionals for implementation guidance. Source: NVD (public-domain), retrieved 2026-08-09. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2023-40200MEDIUMWP Logo Showcase Authorization Bypass Vulnerability (CVSS 5.3)
- CVE-2025-15657MEDIUMUnauthenticated IDOR in School Management – Patch Guidance
- CVE-2026-10023MEDIUMDokan WooCommerce Plugin Order Tampering Vulnerability
- CVE-2026-10038MEDIUMCharitable WordPress Plugin IDOR Arbitrary Attachment Deletion Vulnerability
- CVE-2026-10096MEDIUMQi Blocks WordPress Plugin IDOR Vulnerability—Author-Level Defacement Risk
- CVE-2026-10154MEDIUMDolibarr ERP CRM Authorization Bypass in Messaging Module
- CVE-2026-10212MEDIUMAstrBot 4.24.2 Authorization Bypass via Session ID Manipulation
- CVE-2026-10597MEDIUMOMICARD EDM Unauthenticated Email Disclosure Vulnerability