CVE-2026-110018: aBlocks privilege escalation vulnerability
high 8.8 published 2026-10-24 · updated 2026-10-26
- Affected versions
- 2.17.0 and older
- Fixed in
- 2.18.0 *
- Latest version
- 2.18.0
- Severity
- High · CVSS 8.8
- Active installs
- 2,000+
- Type
- Privilege escalation
* The source does not name a fixed version; this is the first wordpress.org release after the last affected version.
What an attacker needs
- Access: A logged-in account with Contributor-level access or higher.
CVSS vector (score by Wordfence): CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
What to do now
- Update aBlocks to 2.18.0 or newer: Dashboard → Updates, or Plugins → “update now”.
- If you cannot update right away, deactivate it until you can.
- Turn on auto-updates for it: Plugins → “Enable auto-updates” on its row.
- Not sure which version you run? Check your version against every known aBlocks issue.
With WP-CLI:
wp plugin get ablocks --field=version. - If you ran an affected version and something looks off (new admin users, spam pages, redirects), run the free scan below.
The advisory
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.
References
- NVD CVE-2026-110018 nvd.nist.gov
- Wordfence advisory www.wordfence.com
- Code change (fix) plugins.trac.wordpress.org
- Plugin source plugins.trac.wordpress.org
Related
Ran an affected version? Check your site for signs of a hack
The free scan reads the public side of your site and looks for spam pages, hidden redirects, injected scripts and blacklist entries. No login, no install, about a minute.
Where this data comes from
- CVE record, score and references: NIST National Vulnerability Database (NVD), checked 2026-11-04. This product uses data from the NVD API but is not endorsed or certified by the NVD.
- Versions and install counts: wordpress.org/plugins/ablocks (Plugins API), fetched 2026-11-04.
- The summary, “what an attacker needs” and “what to do” sections are our plain-English reading of the record and the plugin's release history; the quoted description is the record's own text. Spot an error? Email Daniel.