← Back to Feed CACHED · 2026-08-15 07:48:38 · CACHE_KEY CVE-2026-15826
CVE-2026-15826 · CWE-704 · Disclosed 2026-08-15

The User Profile Builder plugin for WordPress is vulnerable to Authentication Bypass via Type Confusion in…

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

Someone left the back door unlocked, but most houses on the block never installed that door

CVE-2026-15826 is a type confusion flaw (CWE-704) in the auto-login mechanism of the User Profile Builder WordPress plugin, versions up to and including all 3.x releases before 3.16.5. When a site has the post-registration auto-login feature enabled, an unauthenticated attacker can exploit a type confusion in the login-binding logic to hijack an authenticated session for *any* existing user — including administrators. This gives full WordPress admin access: plugin installation (webshell), database access, and content manipulation. The plugin has approximately 40,000 active installations globally.

The vendor's CVSS 9.8 CRITICAL rating accurately reflects the *technical* impact: unauthenticated, network-accessible, no user interaction, full CIA compromise. However, it overstates real-world risk for most enterprise defenders. The auto-login feature that enables this attack is a non-default configuration — sites that never turned it on are simply not vulnerable. This is the third authentication bypass in this plugin's auto-login flow in 2026 alone (following CVE-2026-15368 fixed in 3.16.4, and CVE-2025-15030 fixed in 3.15.2), which suggests the feature is architecturally fragile but also that the affected population is limited to sites that actively use it. Combined with the relatively small install base of ~40K sites, this is a HIGH-severity issue for affected deployments, not the fleet-wide CRITICAL the CVSS label implies.

"Unauthenticated admin takeover via type confusion, but only if auto-login is enabled"
02 · The Attack Path

4 steps from start to impact.

STEP 01

Identify target running vulnerable plugin

The attacker fingerprints WordPress sites running User Profile Builder < 3.16.5. The plugin exposes registration forms and characteristic URL patterns (/register/, /edit-profile/) that can be identified through passive crawling or tools like WPScan. Shodan/FOFA queries for WordPress with specific plugin signatures can narrow targeting.
Conditions required:
  • Target runs WordPress with User Profile Builder plugin < 3.16.5
  • Target site is internet-accessible
Where this breaks in practice:
  • Only ~40,000 active installations globally
  • Enterprise WordPress deployments often use WAFs that may block automated scanning
Detection/coverage: WPScan, Nuclei templates for plugin version detection, WordPress plugin enumeration via wp-json/wp/v2/plugins (if exposed)
STEP 02

Confirm auto-login is enabled

The attacker verifies that the post-registration automatic login feature is active on the target site. This is a non-default configuration option in the plugin settings. Without it, the type confusion in the login-binding code is unreachable. The attacker can test this by initiating a registration and observing the response behavior.
Conditions required:
  • Auto-login after registration feature must be enabled (non-default)
Where this breaks in practice:
  • Many installations use email confirmation workflows instead of auto-login
  • Enterprise WordPress sites typically require admin approval for new registrations
STEP 03

Craft type-confused registration request

The attacker submits a specially crafted registration request that exploits the type confusion (CWE-704) in the auto-login binding logic. By manipulating the type of the user identifier parameter during registration, the plugin's login routine binds the newly created session to an *existing* user account rather than the freshly registered one. The attacker targets the administrator account by username or user ID.
Conditions required:
  • Knowledge of target admin username (typically 'admin' or discoverable via /?author=1 enumeration)
Where this breaks in practice:
  • Sites with changed default admin usernames add minor reconnaissance overhead
  • CAPTCHA or anti-bot measures on registration forms may slow automated exploitation
Detection/coverage: WAF rules detecting anomalous registration payloads, WordPress audit logs showing unexpected session creation
STEP 04

Obtain admin session

The server returns an authenticated session cookie bound to the targeted administrator account. The attacker now has full WordPress admin access without ever knowing the admin's password. From here, the attacker can install malicious plugins (webshells), modify themes for persistent access, exfiltrate database contents, or pivot to the underlying server if file upload or code execution is possible through the admin panel.
Conditions required:
  • Successful type confusion exploitation in step 3
Where this breaks in practice:
  • Two-factor authentication on the WordPress admin account would not necessarily prevent this (session is already authenticated)
  • Some hardened WordPress configs restrict admin panel access by IP
Detection/coverage: WordPress activity logs showing admin login from unexpected IP, file integrity monitoring detecting new plugin installations
03 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNo confirmed in-the-wild exploitation as of 2026-08-15. Not on CISA KEV. However, the closely related CVE-2025-15030 (same plugin, same auth bypass class) saw rapid mass exploitation after disclosure.
Proof of ConceptNo public PoC identified yet. Disclosed today (2026-08-15). Given the pattern — CVE-2025-15030 and CVE-2026-15368 both had PoCs within days — expect weaponization within 1–2 weeks.
EPSS ScoreNot yet scored (disclosed today). Prior auth bypass in this plugin (CVE-2025-15030) reached EPSS >0.90 within 30 days of disclosure.
KEV StatusNot listed as of 2026-08-15. CVE-2025-15030 was added to KEV after mass exploitation campaigns were observed.
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H — 9.8. Unauthenticated, no interaction, full CIA impact. Vector is technically accurate but does not capture the non-default config prerequisite.
Affected VersionsUser Profile Builder (free and Pro) all versions before 3.16.5. This includes the entire 3.x branch.
Fixed Version3.16.5 (free), likely same for Pro/Unlimited editions. Current latest is 3.16.6 which includes additional security fixes.
Install Base~40,000 active WordPress installations per wordpress.org. Relatively small footprint compared to major plugins (Yoast: 5M+, WooCommerce: 5M+).
Scanning/ExposureWordPress sites are internet-facing by nature. ~13,600 sites using Profile Builder were identified in one researcher's PwnPress scan. Shodan/Censys can fingerprint WordPress but not easily identify specific plugin presence without active probing.
Researcher/ReporterCredited to Ananda Dhakal and the Patchstack team based on related advisories. Cozmoslabs (vendor) has been responsive to reports, shipping fixes within days of disclosure.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to HIGH (8.1/10)

Downgraded from CRITICAL to HIGH because the exploitable attack path requires the non-default auto-login configuration to be enabled, which materially reduces the reachable population below the 40K install base. The unauthenticated, zero-interaction nature of the flaw on an internet-facing component prevents further downgrade.

HIGH Vulnerability existence and admin takeover impact
MEDIUM Non-default configuration requirement (inferred from related CVE-2026-15368 advisory language and WPScan description)
LOW Fraction of installs with auto-login enabled (no survey data available)

Why this verdict

  • Non-default prerequisite narrows population: The auto-login feature that exposes the type confusion is not enabled by default. Sites using email confirmation or admin approval workflows — the more common enterprise configuration — are not reachable. This is a compounding downward pressure from the 9.8 baseline.
  • Small install base: ~40,000 active installations globally. In an enterprise managing 10,000 hosts, the probability of running this specific plugin is low, but if present, the impact is site-critical.
  • Role multiplier: WordPress sites occupy the *typical role* tier (line-of-business web application). They are NOT identity providers, domain controllers, hypervisors, CI/CD, or backup infrastructure. Blast radius is limited to the individual WordPress instance — admin takeover yields control of one site, not domain/fleet compromise. No high-value role floor applies.
  • No KEV, no PoC yet: Disclosed today with no confirmed exploitation or public weaponization. However, the prior CVE-2025-15030 in the same plugin was rapidly weaponized, so this grace period is likely short-lived.
  • Pattern of fragility: This is the *third* auth bypass in this plugin's auto-login flow in 2026. The code path is architecturally weak, and attackers familiar with CVE-2025-15030 exploitation will recognize the attack surface immediately.

Why not higher?

CRITICAL would require either active exploitation (KEV), a high-value role multiplier with fleet-scale blast radius, or removal of the non-default configuration prerequisite. WordPress with a niche registration plugin is not infrastructure-tier software. The blast radius caps at individual site takeover, not domain or fleet compromise. The non-default auto-login requirement meaningfully reduces the exploitable population below the already-small 40K install base.

Why not lower?

MEDIUM would understate the risk for sites that *do* have auto-login enabled. For those sites, this is an unauthenticated, zero-click, zero-interaction admin takeover on an internet-facing endpoint — the textbook definition of a high-severity web vulnerability. The historical pattern of rapid weaponization for this exact plugin (CVE-2025-15030 mass exploitation) means the window before active exploitation is narrow. Additionally, no authentication or network position is required — any internet user can attempt exploitation.

05 · Compensating Control

What to do — in priority order.

  1. Disable auto-login after registration immediately — Navigate to Profile Builder → Settings → General and disable the automatic login feature. This eliminates the vulnerable code path entirely. This is the fastest mitigation — deploy within the noisgate 30-day mitigation SLA for HIGH, but given the exploitation pattern, do it this week.
  2. Update to Profile Builder 3.16.5 or later — The vendor patch is available now. Update via WordPress admin dashboard or WP-CLI (wp plugin update profile-builder). Version 3.16.6 is current and includes additional fixes. Deploy within the noisgate 180-day remediation SLA for HIGH.
  3. Restrict registration form access via WAF rules — If you cannot patch or disable auto-login immediately, use your WAF (Cloudflare, Sucuri, Wordfence) to block or rate-limit POST requests to the plugin's registration endpoints. This buys time but is not a complete fix.
  4. Enable WordPress admin IP allowlisting — Restrict /wp-admin/ and /wp-login.php access to known admin IPs. Even if an attacker obtains an admin session cookie, they cannot use it if the admin panel is IP-restricted. Most enterprise WordPress deployments should already have this.
  5. Audit for compromise indicators — Check WordPress user tables for unexpected admin accounts, review plugin installation logs for unfamiliar plugins, and inspect wp-content/uploads/ for webshells. Use WP-CLI: wp user list --role=administrator to enumerate current admins.
What doesn't work
  • WordPress two-factor authentication plugins — The type confusion creates a fully authenticated session server-side. The session cookie is issued without ever hitting the login form, so 2FA on wp-login.php is bypassed entirely.
  • CAPTCHA on registration forms — While it adds friction to automated exploitation, a determined attacker can solve CAPTCHAs manually or use solving services. It slows but does not prevent exploitation.
  • Changing the default admin username — The attacker can enumerate WordPress usernames via /?author=1 or the REST API (/wp-json/wp/v2/users/). Obscurity provides seconds of delay, not protection.
06 · Verification

Crowdsourced verification payload.

Run this on any host with curl and network access to the target WordPress site. Usage: bash check_profile_builder.sh https://your-wordpress-site.com — no special privileges required, read-only check.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/bin/bash
# CVE-2026-15826 - User Profile Builder Type Confusion Auth Bypass Check
# Checks if the target WordPress site runs a vulnerable version of Profile Builder
# Usage: bash check_profile_builder.sh <wordpress_url>
# Exit codes: 0=VULNERABLE, 1=PATCHED, 2=UNKNOWN

set -euo pipefail

TARGET="${1:?Usage: $0 <wordpress_url>}"
TARGET="${TARGET%/}"

echo "[*] Checking User Profile Builder version on $TARGET"

# Method 1: Check readme.txt (most reliable for free plugins)
README=$(curl -sL --max-time 10 "$TARGET/wp-content/plugins/profile-builder/readme.txt" 2>/dev/null || true)

if [ -z "$README" ]; then
  # Method 2: Try via plugin info in page source
  PAGE=$(curl -sL --max-time 10 "$TARGET" 2>/dev/null || true)
  VERSION=$(echo "$PAGE" | grep -oP 'profile-builder[^"]*ver=\K[0-9.]+' | head -1)
  if [ -z "$VERSION" ]; then
    echo "[?] UNKNOWN - Could not detect Profile Builder plugin on $TARGET"
    echo "    Plugin may not be installed, or version detection is blocked."
    exit 2
  fi
else
  VERSION=$(echo "$README" | grep -iP '^Stable tag:\s*' | head -1 | grep -oP '[0-9]+\.[0-9]+\.?[0-9]*')
  if [ -z "$VERSION" ]; then
    echo "[?] UNKNOWN - Found readme.txt but could not parse version"
    exit 2
  fi
fi

echo "[*] Detected Profile Builder version: $VERSION"

# Compare version - vulnerable if < 3.16.5
FIXED="3.16.5"

version_lt() {
  [ "$(printf '%s\n' "$1" "$2" | sort -V | head -n1)" = "$1" ] && [ "$1" != "$2" ]
}

if version_lt "$VERSION" "$FIXED"; then
  echo "[!] VULNERABLE - Profile Builder $VERSION is below fixed version $FIXED"
  echo "    CVE-2026-15826: Auth Bypass via Type Confusion in Auto-Login"
  echo "    Action: Update to $FIXED+ and disable auto-login feature immediately"
  exit 0
else
  echo "[+] PATCHED - Profile Builder $VERSION is >= $FIXED"
  exit 1
fi
07 · Bottom Line

If you remember one thing.

TL;DR
If any of your WordPress sites run User Profile Builder, check the version and auto-login configuration today. Disable the auto-login-after-registration feature immediately as a compensating control — this eliminates the vulnerable code path and satisfies the noisgate mitigation SLA of ≤30 days for HIGH. Then update the plugin to 3.16.5 or later (ideally 3.16.6) within the noisgate remediation SLA of ≤180 days. Given this plugin's history — CVE-2025-15030 was mass-exploited within days of disclosure — do not wait for the full SLA window; treat the first week as your realistic deadline. Run wp plugin list across your WordPress fleet Monday morning to identify affected instances, disable auto-login on all of them, and schedule the update for the same maintenance window.

Sources

  1. WPScan – Profile Builder Vulnerabilities
  2. Patchstack – Profile Builder Auth Bypass Advisory
  3. WordPress.org – User Profile Builder Plugin
  4. FreshySites – Profile Builder CVE-2026-3139 Bulletin
  5. SicuraNext – Profile Builder Pro Object Injection Research
  6. Cozmoslabs – Profile Builder Changelog
  7. CYFIRMA – WordPress Auth Bypass Analysis
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.