Software component issue could grant elevated privileges
The User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 4.0.3 via the role parameter…
What happened
- The User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 4.0.3 via the role parameter handled by the wppb_add_meta_to_user_on_activation() function. The vulnerability exists because the activation handler passes the attacker-supplied role value directly to WP_User::set_role() with no allow-list validation, and the 4.0.3 reserved-name check exempts pre-existing form fields from the block, allowing a legacy field with meta-name role to persist and bridge attacker-controlled request input into the serialized signup record stored in wp_signups. This makes it possible for unauthenticated attackers to gain a fully activated WordPress administrator account by submitting role=administrator through the public [wppb-register] shortcode form and subsequently clicking the confirmation activation link. Exploitation requires the site to have a legacy form field with meta-name role carried over from before the 4.0.3 upgrade, email confirmation enabled, and open user registration — all stable site-state conditions once established.Security Advisory CVE-2026-109447
- The User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 4.0.3 via the role parameter handled by the wppbaddmetatouseronactivation() function.Advisory description (CVE-2026-109447)
Contributing factors stated by the source
- The User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 4.0.3 via the role parameter handled by the wppbaddmetatouseronactivation() function.
The failure pattern
Watch the pattern: Privileged action without an enforceable approval gate
Related standards
CollectSEA's mapping through this incident's failure pattern; not an official determination by the standards bodies.
Building something similar?
Describe your design and see every precedent that applies, with safeguards you can hand to your coding agent.
Incidents with the same pattern
GitHub Actions injection leaks Nx's npm token; malicious packages use local AI coding tools to hunt for secrets (2025)
A pull-request title validation workflow used pullrequesttarget, which runs with repository secrets, and echoed the unsanitized PR title, creating an injection point; the workflow's token also had read/write permissions.
GitHub's RSA SSH host private key briefly exposed in a public repository (2023)
GitHub.com's RSA SSH private key was briefly exposed in a public GitHub repository.
Zillow winds down its algorithmic home-buying business after price forecasts miss (2021)
Machine learning pricing models drifted during market volatility; automated purchasing bought homes above value resulting in $540M inventory write-down.
Retail broker failed best-execution reviews while taking high payment for order flow (Robinhood, SEC 2020)
From July 2016 to June 2019 the broker received high payment for order flow but did not conduct adequate, regular and rigorous reviews of execution quality on customer orders.
SUNBURST: a backdoor inserted into SolarWinds Orion builds reaches customers (2020)
Compromised build server injected SUNBURST malware into compiler memory during build process; distributed to 18,000 customers.
Confusing loan-system interface leads Citibank to wire nearly $900 million in principal to Revlon lenders (2020)
Unintuitive Flexcube interface required checking obscure override box; bank accidentally wired $894M of proprietary funds to Revlon lenders.