Description
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.
Published: 2026-07-01
Score: 4.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Kadence Blocks plugin contains an insecure direct object reference in its optimizer REST endpoints. The code checks that a logged‑in user has permission to edit or delete a post using the supplied post ID, but the actual data accessed is keyed by a separate "post_path" parameter that is fully controlled by the attacker. Consequently Contributor or higher capability can supply a post ID that passes the capability test and an arbitrary post_path belonging to another user, allowing that attacker to read, modify, or delete optimizer analysis records for posts that they do not own. The weakness is a classic CWE‑639 scenario involving authorization bypass via meeting an IDOR that is not correlated with the resource being accessed.

Affected Systems

The affected product is Kadence Blocks – Page Builder Toolkit for Gutenberg Editor from StellarWP. All releases up to and including 3.7.7 Compatibility with earlier versions is not specified, but the vulnerability is limited to the .7.7 series.

Risk and Exploitability

The CVSS score of 4.3 indicates moderate severity, reflecting that the flaw requires the attacker to be authenticated and to possess Contributor-level rights. EPSS data is unavailable, and the issue is not listed in the CISA KEV catalog. The vulnerability is exploitable through the public REST API endpoints for creating, retrieving, deleting, and bulk‑deleting optimizer items, requiring an authenticated request that contains both a valid post ID (to satisfy the authorisation check) and a malicious post_path payload. Because the attacker can force the use of a different post_path, they can target any other user’s post path.

Generated by OpenCVE AI on July 1, 2026 at 13:03 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update Kadence Blocks to the latest version (3.7.8 or newer) where the optimizer REST endpoints enforce matching of the supplied post_id and post_path and properly validate authorisation against the actual resource accessed.
  • Limit the Contributor role’s capacity to edit or delete posts by adjusting the role’s capabilities using a role editor plugin or custom risk surface even if the flaw were present.
  • Implement monitoring of the optimizer REST API endpoints, watching for repeated attempts to access different post paths with anomalous patterns are detected.

Generated by OpenCVE AI on July 1, 2026 at 13:03 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

References
Link Providers
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.6.7/includes/resources/Optimizer/Path/Path.php#L60 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.6.7/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L153 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.6.7/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L197 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.6.7/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L232 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.6.7/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L339 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.6.7/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L383 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.6.7/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L420 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.6.7/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L458 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.6.7/includes/resources/Optimizer/Store/Table_Store.php#L96 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.7.6/includes/resources/Optimizer/Path/Path.php#L60 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.7.6/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L153 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.7.6/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L197 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.7.6/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L232 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.7.6/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L339 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.7.6/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L383 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.7.6/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L420 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.7.6/includes/resources/Optimizer/Rest/Optimize_Rest_Controller.php#L458 cve-icon
https://plugins.trac.wordpress.org/browser/kadence-blocks/tags/3.7.6/includes/resources/Optimizer/Store/Table_Store.php#L96 cve-icon
https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3590217%40kadence-blocks&new=3590217%40kadence-blocks&sfp_email=&sfph_mail= cve-icon
https://www.wordfence.com/threat-intel/vulnerabilities/id/24cdd50f-742c-457c-85f7-9cccaf366e87?source=cve cve-icon
History

Wed, 01 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
First Time appeared Stellarwp
Stellarwp kadence Blocks — Page Builder Toolkit For Gutenberg Editor
Wordpress
Wordpress wordpress
Vendors & Products Stellarwp
Stellarwp kadence Blocks — Page Builder Toolkit For Gutenberg Editor
Wordpress
Wordpress wordpress

Wed, 01 Jul 2026 12:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Wed, 01 Jul 2026 05:00:00 +0000

Type Values Removed Values Added
Description 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.
Title Kadence Blocks <= 3.7.7 - Insecure Direct Object Reference to Authenticated (Contributor+) Arbitrary Optimizer Data Deletion/Read/Modification via 'post_path' Parameter
Weaknesses CWE-639
References
Metrics cvssV3_1

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


Subscriptions

Stellarwp Kadence Blocks — Page Builder Toolkit For Gutenberg Editor
Wordpress Wordpress
cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-07-01T10:42:11.715Z

Reserved: 2026-06-22T14:33:57.344Z

Link: CVE-2026-12904

cve-icon Vulnrichment

Updated: 2026-07-01T10:33:52.292Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-01T15:15:03Z

Weaknesses
  • CWE-639

    Authorization Bypass Through User-Controlled Key