Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as Contributor
-
DeliverySave block with formType=login carrying spoofed roleSlug
-
ExploitInvoke /ablocks/v1/form-builder/registration with valid wp_rest nonce
-
ExecutionHandler reads roleSlug and calls set_role()
-
ImpactReceive authenticated Editor session via wp_set_auth_cookie()
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
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 account at Contributor level or above on a site running aBlocks ≤2.17.0, plus a valid wp_rest nonce and satisfaction of the endpoint's post-ownership check. The specific precondition is that the attacker saves an aBlocks form-builder block with formType set to 'login' (not 'registration'), which lets an arbitrary roleSlug survive because RegistrationFormSanitizer::verify() only enforces the roleSlug constraint at save-time for formType='registration'; the /ablocks/v1/form-builder/registration endpoint is reachable by default because it is registered with permission_callback => __return_true. Key LIMITING factors: an existing low-privilege account is mandatory (not anonymous), and the achievable role is bounded below administrator - is_safe_registration_role() rejects any role holding manage_options, edit_users, delete_users, create_users, promote_users, or edit_theme_options, so Editor is the highest practically reachable role on a standard install. |
| Impact | This is a genuine, well-corroborated privilege-escalation flaw but one whose real-world urgency is moderated by its prerequisites and bounded impact. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N, base 8.8) correctly reflects a network-reachable, low-complexity attack requiring low privileges and no user interaction - the PR:L is key and is consistent with the description, which requires an existing Contributor-level (or higher) authenticated account plus a valid wp_rest nonce and a post-ownership check. It is therefore NOT remote-unauthenticated. The vuln.today decision label is 'this_week' (not act_now/emergency), aligning with a serious-but-not-fire-drill posture. No EPSS score, no CISA KEV entry, and no public exploit reference are present in the supplied data, so there is no signal of active or mass exploitation; absence of these is not proof of safety but does argue against widespread automated attack at this time. A material mitigating factor stated in the description itself is that escalation is capped below administrator tier - is_safe_registration_role() rejects any role holding manage_options/edit_users/delete_users/create_users/promote_users/edit_theme_options, so the highest practically reachable role is Editor. Net: a real priority for sites that allow Contributor-or-above accounts (e.g. multi-author blogs, membership/guest-post sites), and a lower concern for single-admin sites with no untrusted lower-privilege users. The main data gap is the lack of EPSS/KEV and no confirmed fixed-version number in the supplied references. |
| Exploit ScenarioDerived | An attacker who already holds a Contributor account saves an aBlocks form-builder block with formType='login' while embedding an arbitrary roleSlug (e.g. 'editor') in the block attributes, exploiting that the registration-only sanitizer check is bypassed for non-registration form types. They then call the /ablocks/v1/form-builder/registration REST endpoint with their valid wp_rest nonce; the handler reads roleSlug straight from the attacker-controlled post_content and invokes WP_User::set_role() plus wp_set_auth_cookie(), returning a fully authenticated Editor session. No public exploit identified at time of analysis, though the attack is low-complexity given the described code paths. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 24, 2026
Privilege escalation in the aBlocks WordPress plugin (Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder) through 2.17.0 lets an authenticated attacker with Contributor-level access or above raise their own WordPress role to Editor and receive a fully authenticated session at the elevated level. The flaw sits in the plugin's /ablocks/v1/form-builder/registration REST endpoint, which is registered with permission_callback => __return_true and whose register() handler reads roleSlug from attacker-controlled block attributes without confirming the block's formType is actually registration; the save-time sanitizer only enforces that constraint for registration blocks. Impact is bounded below administrator - is_safe_registration_role() rejects any role carrying manage_options, edit_users, delete_users, create_users, promote_users, or edit_theme_options, so Editor is the highest role practically reachable on a standard installation. No public exploit code or active exploitation is identified at time of analysis, and the CVSS vector (PR:L) confirms the attack requires authentication.
RemediationAI
Upstream fix available (changeset 3756864, https://plugins.trac.wordpress.org/changeset?reponame=&old=3756864%40ablocks&new=3756864%40ablocks); a released patched version is not independently confirmed in the available data, so verify the current plugin release before relying on it and consult the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/6fe7efb5-540b-4d85-852f-ad572da7ecdd?source=cve for the vendor's stated fixed build. Because exploitation hinges on a Contributor-or-higher account combined with a valid wp_rest nonce and post ownership, sites that cannot immediately update should reduce the attack surface by auditing and, where workflow permits, removing Contributor-level accounts that do not require block-editing rights - the trade-off is loss of delegated drafting/publishing capability. Note that the escalation ceiling is Editor, not Administrator, so a successful attack cannot directly install plugins or manage users, but it does hand the attacker a fully authenticated Editor session and should be treated as a full content-integrity compromise of the site. The decision label for this item is this_week; no public exploit code and no CISA KEV confirmation are present in the available intelligence.
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
The issue is classified CWE-269 (Improper Privilege Management) and resides in the aBlocks form-builder REST controller (includes/api/form-builder-controller.php, with the relevant logic around lines 70, 345, 353 and 685 in the 2.16.0 tag). WordPress REST routes are normally gated by a permission_callback; here the registration route uses __return_true, so authorization is deferred entirely to the handler's own logic. The handler reads roleSlug from the parsed block attributes stored in a post's post_content, but never checks that the originating block's formType equals registration. The RegistrationFormSanitizer::verify() routine (see includes/blocks/form-builder/block-attr-sanitizer/sanitizers/form-builder/registration-form-sanitizer.php, around line 28) enforces the safe-role rule only at save-time and only for blocks typed as registration, so a block saved with formType='login' carries an arbitrary roleSlug through untouched. Triggering the endpoint with a valid wp_rest nonce and satisfying the post-ownership check causes the handler to call WP_User::set_role() and wp_set_auth_cookie(), granting the attacker a live session at the chosen role. The role allow-list checked by is_safe_registration_role() blocks any capability set containing manage_options, edit_users, delete_users, create_users, promote_users or edit_theme_options, which caps escalation below administrator tier.
Know when Wordpress Plugin 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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network REST endpoint, low complexity, but a Contributor account is required so PR:L; Editor gains read/edit/delete of all content (C:H/I:H) with only partial availability impact (A:L) as site admin functions stay out of reach.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The aBlocks - Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 2.17.0 via the /ablocks/v1/form-builder/registration REST endpoint. The vulnerability exists because the endpoint is registered with permission_callback => __return_true and the register() handler reads roleSlug directly from attacker-controlled block attributes in post_content without ever verifying that the block's formType is registration - a condition that RegistrationFormSanitizer::verify() imposes only at save-time, meaning a Contributor can preserve an arbitrary roleSlug by saving a block with formType='login' and then triggering the endpoint via a valid wp_rest nonce and post-ownership check. This makes it possible for authenticated attackers, with Contributor-level access and above, to escalate their WordPress role to Editor or any other non-administrator role and receive a fully authenticated session at the elevated privilege level via WP_User::set_role() and wp_set_auth_cookie(). Escalation is bounded below administrator-tier roles because is_safe_registration_role() rejects any role holding manage_options, edit_users, delete_users, create_users, promote_users, or edit_theme_options, meaning the highest practically reachable role on a standard WordPress installation is Editor.
Executive ViewAI
A high-severity privilege escalation vulnerability in the aBlocks WordPress plugin (versions through 2.17.0) allows authenticated users with Contributor access or higher to elevate their own role to Editor and obtain a fully authenticated Editor session. This impacts any organization using the affected plugin, as malicious insiders or compromised Contributor accounts could gain elevated editorial capabilities, potentially leading to content manipulation, data exposure, or further lateral movement within the WordPress site.
Disable the aBlocks plugin until a patch is available; restrict Contributor-level access to trusted users; implement WAF rules to block exploitation attempts against the vulnerable REST endpoint; monitor for unauthorized privilege changes.
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
Attack Technique
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
More in Wordpress Plugin
View allThe Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
EUVD-2026-109265
GHSA-j3rc-5xc4-8hjg
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB