Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Unauthenticated remote registration submission (AV:N/AC:L/PR:N/UI:N) yields full admin takeover, so confidentiality, integrity, and availability are all High with unchanged scope.
Primary rating from Vendor (wordfence).
CVSS VectorVendor: wordfence
Lifecycle Timeline
3DescriptionCVE.org
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.
Articles & Coverage 1
AnalysisAI
Authentication bypass in the User Profile Builder WordPress plugin (versions through 3.16.4) lets unauthenticated attackers log in as the site's Administrator (user ID 1) by submitting a registration with a 61-70 character username, resulting in full site takeover. The flaw is a PHP type-confusion bug where an error object is silently coerced to the integer 1, binding an autologin nonce to the admin account. Rated CVSS 9.8; no public exploit identified at time of analysis, though the fix commit publicly reveals the exact defective code path.
Technical ContextAI
The root cause is CWE-704 (Improper Type Conversion / Type Confusion) in the plugin's front-end registration flow. In wppb_log_in_user() the code calls absint() directly on the return value of WordPress core's wp_insert_user() before running an is_wp_error() check. When core rejects an invalid registration (here, a username of 61-70 characters, which violates WordPress's username length constraints) it returns a WP_Error object rather than an integer user ID. Because absint() coerces any non-numeric object to the integer 1, the subsequent is_wp_error() guard never short-circuits, and the plugin proceeds to mint a transient-backed autologin nonce for user ID 1 - which on virtually all WordPress installations is the original Administrator account. The relevant source lines are visible in the plugin trac (functions.php L1481 and class-formbuilder.php), and the corrected order-of-operations fix is in changeset 3609855.
RemediationAI
Upgrade to the first release published after 3.16.4 that contains changeset 3609855, which reorders the logic to perform the is_wp_error() check before absint() coercion; the exact patched version tag is not independently confirmed from the provided data, so verify the current version on the WordPress.org plugin page and update immediately. Upstream fix is available (changeset 3609855 at https://plugins.trac.wordpress.org/changeset/3609855/profile-builder). If you cannot patch right away, the most effective compensating control is to disable front-end user registration provided by the plugin (remove or unpublish the Profile Builder registration form/shortcode), since the attack requires submitting the registration form - this has the side effect of blocking all legitimate self-service signups. As additional hardening, restrict or WAF-filter registration endpoints, and consider ensuring the primary Administrator is not user ID 1, though this is defense-in-depth rather than a guaranteed block. Reference the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/9f606fba-f779-42ea-a160-6c3b20dc5e79?source=cve) for detection guidance.
The mailSend function in the isMail transport in PHPMailer before 5.2.18 might allow remote attackers to pass extra para
The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail comman
The 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 GiveWP - Donation Plugin and Fundraising Platform plugin for WordPress is vulnerable to PHP Object Injection in all
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
Remote code execution in WordPress 6.9.x (before 6.9.5) and 7.0.x (before 7.0.2) arises from a REST API batch endpoint r
Same weakness CWE-704 – Incorrect Type Conversion or Cast
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-59593
GHSA-2v77-3rr8-9p3p