Profile Builder registration type confusion authenticates visitors as user ID 1
Profile Builder through 3.16.4 calls absint() on wp_insert_user() before checking is_wp_error(). A registration using a 61-to-70-character username makes WordPress return WP_Error, which absint() coerces to integer 1; the plugin then issues a transient-backed autologin nonce for user ID 1. An unauthenticated visitor can use that nonce to log in as the first account, normally the site administrator. The public.
- Component
- User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor
- Plugin slug
profile-builder- Affected
- <= 3.16.4
- Safe version
- See mitigation notes
- Published
- Aug 15, 2026
- Weakness
- CWE-704
This CVE was published Aug 15, 2026 and is one of 29 known issues for this plugin.
Update, patch or deactivate.
No fixed release is identified in the authoritative record. Update when a confirmed patch is available; until then, disable public Profile Builder registration when warranted and audit administrator logins, sessions, and account changes. The official upstream changelog lists version 4.0.0, which is newer than the published affected range. Its changelog does not clearly confirm this specific fix, so it is not counted as a known-safe release.
No confirmed safe version is listed. Consider a vendor-supported patch or temporarily restricting the affected functionality while you assess the risk.
Deactivate only when warranted by your risk profile, or when advised by your hosting provider in the limited circumstances where the vulnerability cannot otherwise be mitigated. If you’re unsure which action is appropriate, contact Fused or your hosting provider for guidance.
Technical description
The User Profile Builder plugin for WordPress is vulnerable to Authentication Bypass via Type Confusion in versions up to, and including, 3.16.4. This is due to the wppb_log_in_user() function calling absint() on the return value of wp_insert_user() before performing an is_wp_error() check — when a registration is submitted with a 61–70 character username, WordPress core rejects it with a WP_Error object, but absint() coerces that object to the integer 1 before the error check can short-circuit execution, causing the plugin to bind and return a transient-backed autologin nonce tied to user ID 1. This makes it possible for unauthenticated attackers to log in as the site's Administrator account (user ID 1), resulting in full administrative takeover of the site.
CVE / CNA vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Primary and upstream sources
- NVD record for CVE-2026-15826
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- Wordfence advisory wordfence.com