CVE-2026-107622: BuddyForms <= 2.10.5 - Unauthenticated Privilege Escalation to Form-Type Confusion via 'bf_post_type' Parameter
The BuddyForms plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 2.10.5 via a form-type confusion attack through the bfposttype parameter. This is due to the public frontend submission handler buddyformsformresponsenoajax() authorizing logged-out submissions based solely on the target form's publicsubmit flag while independently trusting the attacker-supplied $POST['bfposttype'] to determine the post type of the newly created object — a cross-check introduced in 2.10.2 applies only to existing posts (postid != 0) and is completely bypassed for new-object creation — combined with the savepost listener buddyformseditformsavemetaboxdata() lacking both a currentusercan() capability check and a form-builder nonce, causing it to unconditionally persist attacker-supplied $POST['buddyformsoptions'] for any newly inserted buddyforms CPT post. This makes it possible for unauthenticated attackers to insert a rogue BuddyForms form configuration with an attacker-controlled newuserrole value into the live global form registry, then submit a registration through that form to create a new WordPress account with administrator-level privileges and achieve full site takeover. Exploitation requires the WordPress site to have "Anyone can register" enabled and at least one public BuddyForms form attached to a page, both of which are standard BuddyForms deployment configurations.
Event History
Frequently Asked Questions
Who can exploit this issue?
An attacker does not need to be logged in or have any existing WordPress privileges. Exploitation uses the public frontend submission handler and a target form that permits public submissions.
What conditions make a site exposed?
The affected BuddyForms installation must have a form with its public_submit flag enabled. The attacker can use that public form submission path while supplying a different bf_post_type value to create a new BuddyForms form object.
What can an attacker achieve after exploiting the flaw?
An attacker can insert a rogue BuddyForms form configuration into the global form registry with an attacker-controlled new_user_role value. They can then submit a registration through that rogue form to create a new WordPress account with the selected role.
How can administrators look for signs of exploitation?
Review newly created BuddyForms custom post type entries and their stored BuddyForms options for unexpected form configurations, especially unexpected new_user_role values. Also review recently created WordPress accounts for registrations associated with unrecognized BuddyForms forms.