Skip to main content

aBlocks CVE-2026-110018

| EUVDEUVD-2026-109265 HIGH
Improper Privilege Management (CWE-269)
2026-10-24 Wordfence GHSA-j3rc-5xc4-8hjg
8.8
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as Contributor
  2. Delivery
    Save block with formType=login carrying spoofed roleSlug
  3. Exploit
    Invoke /ablocks/v1/form-builder/registration with valid wp_rest nonce
  4. Execution
    Handler reads roleSlug and calls set_role()
  5. Impact
    Receive 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder 0 ≤2.17.0

Affected Packages

euvd ablocks_gutenberg_blocks_user_dashboard_builder_popup_builder_form_builder_animation_builder no fix

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

Vendor (Wordfence) PRIMARY 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.3 HIGH

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Low
specific third-party WordPress Gutenberg/form plugin, modest install base
Social Media
2
Sightings
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

CVE-2024-5084 CRITICAL POC
9.8 May 23

The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil

CVE-2024-44000 CRITICAL POC
9.8 Oct 20

Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote

CVE-2020-36847 CRITICAL POC
9.8 Jul 12

The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner

CVE-2025-11749 CRITICAL POC
9.8 Nov 05

The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint

CVE-2025-27007 CRITICAL POC
9.8 May 01

The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut

CVE-2016-1209 CRITICAL POC
9.8 May 14

The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via

CVE-2024-4443 CRITICAL POC
9.8 May 22

The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based

CVE-2024-1698 CRITICAL POC
9.8 Feb 27

SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a

CVE-2023-6875 CRITICAL POC
9.8 Jan 11

The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i

CVE-2024-1512 CRITICAL POC
9.8 Feb 17

The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base

CVE-2024-4295 CRITICAL POC
9.8 Jun 05

The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy