CVE-2026-107622 Escalada de privilegios no autenticada en BuddyForms hasta 2.10.5 por confusión de tipo de formulario
El handler buddyforms_form_response_no_ajax() autoriza envíos de usuarios no autenticados según el flag public_submit del formulario pero confía en el parámetro bf_post_type enviado por el atacante para determinar el tipo de objeto creado. Combinado con la falta de verificación de capacidades y de nonce en buddyforms_edit_form_save_meta_box_data(), permite persistir opciones arbitrarias y escalar privilegios.
CVSS 3.1
- Probabilidad de explotación · EPSS del 09/110,7 % · percentil 54
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
themekraft BuddyForms
hasta 2.10.5
Qué hacer
- Verificá si usás BuddyForms y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
Calculadora CVSS
CVSS 3.1 · 9.8 CRÍTICA
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Vector de ataqueRed
- Complejidad del ataqueBaja
- Privilegios requeridosNinguno
- Interacción del usuarioNinguna
- AlcanceSin cambio
- ConfidencialidadAlta
- IntegridadAlta
- DisponibilidadAlta
Descripción original
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 `bf_post_type` parameter. This is due to the public frontend submission handler `buddyforms_form_response_no_ajax()` authorizing logged-out submissions based solely on the target form's `public_submit` flag while independently trusting the attacker-supplied `$_POST['bf_post_type']` to determine the post type of the newly created object — a cross-check introduced in 2.10.2 applies only to existing posts (`post_id != 0`) and is completely bypassed for new-object creation — combined with the `save_post` listener `buddyforms_edit_form_save_meta_box_data()` lacking both a `current_user_can()` capability check and a form-builder nonce, causing it to unconditionally persist attacker-supplied `$_POST['buddyforms_options']` 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 `new_user_role` 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.
Referencias (9)
- www.wordfence.com/threat-intel/vulnerabilities/id/2e83e654-f8a6-44a6-a687-92606331309e?so…
- plugins.trac.wordpress.org/browser/buddyforms/tags/2.10.2/includes/form/form.php#L476
- plugins.trac.wordpress.org/browser/buddyforms/tags/2.10.2/includes/admin/register-post-ty…
- plugins.trac.wordpress.org/browser/buddyforms/tags/2.10.2/includes/form/form-control.php#…
- plugins.trac.wordpress.org/browser/buddyforms/tags/2.10.2/includes/form/form-control.php#…
- plugins.trac.wordpress.org/browser/buddyforms/tags/2.10.2/includes/wp-insert-user.php#L241
- plugins.trac.wordpress.org/browser/buddyforms/tags/2.10.2/includes/wp-insert-user.php#L702
- github.com/Themekraft/buddyforms/pull/779/files
- plugins.trac.wordpress.org/changeset/3780268/buddyforms/trunk/includes/admin/register-pos…
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.