Aviso de seguridad de Profile Builder
Si recibió un correo electrónico mío que le dirige a esta página, es porque su sitio web parece
estar ejecutando una versión de Profile Builder (el plugin de WordPress listado en
WordPress.org como “Profile Builder” / “User Profile Builder”, de Cozmoslabs, que se
encuentra en sus archivos en /wp-content/plugins/profile-builder/) que cae dentro del rango
afectado por un problema de seguridad conocido. Esta página explica cuál es el problema, cómo
determinar si afecta a su sitio siquiera, cómo leer su versión sin ser engañado y cómo actualizar.
Tenga en cuenta: esto no es ProfilePress. Existe un plugin de WordPress diferente con un
nombre similar (ProfilePress, carpeta wp-user-avatar), y escribo sobre ese por separado. Si la
carpeta de su plugin es wp-user-avatar en lugar de profile-builder, esta no es la página que
busca; consulte en su lugar el aviso de ProfilePress. Todo lo que sigue
se refiere únicamente al Profile Builder de Cozmoslabs.
Antes que nada, el hecho más importante sobre este aviso: una versión dentro del rango afectado no significa por sí misma que su sitio esté expuesto. El problema descrito a continuación solo entra en juego en sitios que han activado un ajuste específico, y no puedo ver sus ajustes desde fuera:
- La opción de Profile Builder “Iniciar sesión automáticamente”, que conecta directamente a un nuevo usuario justo después de completar su registro, tiene que estar activada.
- Esa opción está desactivada de forma predeterminada. Un sitio que nunca la haya activado no está expuesto a este problema, ni siquiera en una versión afectada.
Puedo leer la versión de su plugin a partir de un archivo público, pero no puedo leer su configuración, por lo que este aviso es una advertencia preventiva y no un hallazgo confirmado sobre su sitio.
El problema es CVE-2026-15368, una toma de control de cuenta sin autenticación en el paso de inicio de sesión automático del plugin. Afecta a las versiones 2.1.4 hasta 3.16.3 y está corregido en 3.16.4. Si está ejecutando una versión afectada, actualice Profile Builder a la versión 3.16.4 o posterior. Tiene una puntuación CVSS de 8.1. No tengo conocimiento de ningún código de explotación público para este problema.
Una palabra sobre la urgencia, ya que este es un aviso condicional. Si no utiliza el inicio de sesión automático tras el registro, actualizar es un mantenimiento ordinario del plugin. Si lo utiliza, por favor trate la actualización como una prioridad: en esa configuración, la vulnerabilidad podría permitir que un visitante sin ninguna cuenta obtenga una sesión iniciada perteneciente a un usuario existente cuya dirección de correo electrónico conozca, incluido un administrador, lo que entregaría el control del sitio.
Esta es una vulnerabilidad del plugin, no del núcleo de WordPress. Un WordPress completamente actualizado no le protege si el plugin Profile Builder en sí está en una versión afectada.
¿Es legítimo este mensaje?
Sí. Este es un aviso de divulgación responsable y de buena fe de un investigador de seguridad independiente. Yo no le pido dinero, contraseñas ni acceso a su sitio, y no he intentado infiltrarme en él, registrarme en él ni explotar nada.
Lo único que hice fue examinar archivos públicamente visibles que su sitio web sirve a todos los visitantes (del mismo modo que su página de inicio es pública) y anotar el número de versión que el plugin publica. Específicamente no envié su formulario de registro, no creé ninguna cuenta y no me acerqué al paso de inicio de sesión automático. Nada de esta comprobación toca sus datos, su área de administración ni ninguna parte privada de su sitio (más detalle en Qué hice y qué no hice más abajo).
Si desea verificar quién soy, consulte los datos de contacto al final de esta página y la página Acerca de.
Por qué importa
Profile Builder añade formularios de registro, inicio de sesión y edición de perfil de cara al público a un sitio WordPress, para que los visitantes puedan registrarse y gestionar sus propias cuentas sin ver nunca el área de administración. Una de sus comodidades es la opción de conectar automáticamente a un nuevo usuario en el momento en que completa su registro, ahorrándole tener que escribir de nuevo su contraseña en un formulario de inicio de sesión separado.
En las versiones afectadas, esa comodidad decidía qué cuenta conectar de forma incorrecta. En lugar de usar la cuenta que acababa de crear, el plugin buscaba una cuenta por la dirección de correo electrónico que se había escrito en el formulario de registro, y conectaba esa. Si la dirección enviada pertenecía a alguien que ya tenía una cuenta en el sitio, la persona que rellenaba el formulario recibía una sesión iniciada para esa cuenta existente.
De ahí se derivan dos cosas, que tiran en direcciones opuestas. La primera es que esto solo ocurre donde el inicio de sesión automático está activado. Con el ajuste desactivado, el plugin nunca inicia el paso de inicio de sesión automático en absoluto, por lo que un sitio en ese estado no es alcanzable a través de este problema. La segunda es que donde el ajuste sí está activado, nada limita la consecuencia a los miembros ordinarios: la cuenta que se entrega es la que coincida con la dirección que se envió, y la dirección de un administrador normalmente no es un secreto. No se requiere ninguna cuenta, ninguna contraseña ni ninguna cooperación de la víctima.
Estoy describiendo esto al nivel que necesita un propietario de sitio para actuar, y no más. No estoy publicando los detalles que permitirían a alguien reproducirlo, y le pediría que no intente hacerlo contra su propio sitio o el de nadie más. Comprobar su ajuste y su número de versión, como se describe a continuación, le dice todo lo que necesita para decidir qué hacer.
Si mi correo electrónico citó este problema, significa que la versión que informa su sitio cae dentro del rango afectado. No probé si su sitio en particular es explotable, y no puedo ver cómo están configurados sus ajustes. Lo único que observé fue la versión.
¿Estoy afectado?
Dos preguntas lo deciden, en este orden.
Primero: ¿está activada la opción “Iniciar sesión automáticamente”?
Esta es la pregunta decisiva, y solo usted puede responderla. Comprobar sus propios ajustes es completamente seguro y es precisamente el objetivo de esta página.
- Inicie sesión en su escritorio de WordPress (normalmente en
yourdomain.com/wp-admin). - Abra el menú Profile Builder en la barra lateral y luego vaya a Ajustes.
- Busque el interruptor etiquetado Iniciar sesión automáticamente, descrito como “Activar para conectar automáticamente a los nuevos usuarios tras un registro exitoso”.
- Si ese interruptor está desactivado, este problema no alcanza a su sitio, incluso en una versión afectada. Actualizar sigue siendo recomendable como mantenimiento ordinario.
- Si está activado, el problema le afecta y debería actualizar cuanto antes.
Un lugar adicional donde mirar, si tiene más de una página de registro: una página individual que contenga un formulario de registro de Profile Builder puede llevar su propia copia de ese ajuste, que anula el global. Si mantiene varias páginas de registro, vale la pena comprobar cada una de ellas en lugar de confiar únicamente en el interruptor global.
Por favor, no intente reproducir el problema contra su propio sitio o el de nadie más, y no necesita hacerlo para responder la pregunta anterior.
Segundo: ¿qué versión está ejecutando?
No tiene que tomar mi palabra. Para este plugin hay una forma específica de comprobarlo que puede engañarle, por lo que vale la pena leer esta parte con atención.
Desde el área de administración de WordPress (fuente autorizada):
- En su escritorio de WordPress, vaya a Plugins y luego a Plugins instalados.
- Encuentre Profile Builder, la entrada cuya carpeta es
profile-builder, y anote la versión que se muestra debajo de su nombre.
Desde el manifiesto público (no se necesita inicio de sesión): abra
yourdomain.com/wp-content/plugins/profile-builder/readme.txt en un navegador. La línea
Stable tag: cerca de la parte superior es la versión que informa su instalación, y esta es
una de las dos fuentes públicas que leo.
Desde el código fuente de su página (no se necesita inicio de sesión): vea el código fuente de una página en su sitio que muestre un formulario de Profile Builder, y busque la hoja de estilos front-end del plugin en exactamente esta ruta:
/wp-content/plugins/profile-builder/assets/css/style-front-end.css?ver=...
El número ?ver= adjunto a ese único archivo es la versión propia del plugin. Para este
plugin sigue el lanzamiento exactamente, por lo que lo trato como una segunda lectura fiable.
La trampa que evitar aquí, y es fácil caer en ella. Profile Builder incluye otros componentes
dentro de su propia carpeta de plugin, y estos llevan sus propios números de versión, sin
relación. El complemento incluido user-profile-picture bajo
add-ons-free/user-profile-picture/ se ha mantenido en 2.6.0 a lo largo de varias versiones de
Profile Builder sin moverse, y hay una integración con Divi incluida bajo assets/misc/divi/
numerada 1.0.0. Ambos números parecen alarmantemente antiguos junto a 3.16.4, y ninguno de ellos
dice nada en absoluto sobre este problema. Si está leyendo una versión en el código fuente de su
página, asegúrese de que la ruta del archivo desde la que la lee es
assets/css/style-front-end.css y ninguna otra.
Luego aplique esta regla, y tenga en cuenta que las versiones se comparan numéricamente, no
alfabéticamente, por lo que 3.10.0 es más reciente que 3.9.9 aunque parezca menor como texto.
Este plugin realmente recorre cada línea de lanzamiento desde .0 hasta .9 antes de dar la
vuelta, por lo que esa distinción importa aquí:
- 2.1.4 hasta 3.16.3: potencialmente afectado, sujeto a la pregunta del ajuste anterior. Actualice ahora.
- 3.16.4 o posterior: ya corregido en lo que respecta a este problema. La versión actual al momento de escribir esto es 3.16.6, y tomar la versión más reciente disponible es la mejor opción.
- Anterior a 2.1.4: no afectado por este problema. El error específico descrito anteriormente se introdujo en 2.1.4, por lo que las instalaciones genuinamente más antiguas quedan fuera de su rango. Dicho esto, un lanzamiento tan antiguo está muchos años atrasado en todo lo demás, y actualizar es recomendable por motivos generales.
Si no puede obtener una versión legible de ninguna de las tres comprobaciones anteriores, eso es
común con este plugin y no es señal de nada: la hoja de estilos solo se carga en páginas que
realmente muestran uno de sus formularios, y los plugins de caché u optimización suelen eliminar
el valor ?ver=. La pantalla de administración del primer paso siempre tiene la respuesta.
Cómo actualizar
La vía más segura es actualizar a través del propio WordPress, y realizar una copia de seguridad antes:
- Realice una copia de seguridad de su sitio (archivos y base de datos) antes de realizar cambios. La mayoría de los proveedores de alojamiento ofrecen copias de seguridad con un solo clic, o puede utilizar un plugin de copia de seguridad de WordPress.
- En la administración de WordPress, vaya a Escritorio y luego a Actualizaciones, o a Plugins y luego a Plugins instalados. Si aparece una actualización de Profile Builder, instálela desde aquí.
- Si prefiere la línea de comandos, WP-CLI hace lo mismo:
wp plugin update profile-builder(el comando utiliza el nombre de la carpeta). - Si no aparece ninguna actualización, puede obtener la última versión directamente desde la página del plugin en el directorio de WordPress.org, Profile Builder, y actualizar mediante Plugins, luego Añadir nuevo plugin, y finalmente Subir plugin.
- Después de actualizar, confirme el nuevo número de versión (3.16.4 o posterior) utilizando los pasos anteriores, y compruebe que sus formularios de registro, inicio de sesión y edición de perfil siguen funcionando con normalidad.
Si utiliza alguno de los complementos de pago de Profile Builder de Cozmoslabs, actualícelos junto con el plugin principal, ya que sus lanzamientos suelen ir emparejados.
Ya que está allí, vale la pena confirmar que el núcleo de WordPress y sus otros plugins están actualizados, ya que el mismo principio se aplica a todos ellos.
Después de actualizar
Actualizar a la versión 3.16.4 o posterior cierra el problema, y para la mayoría de los sitios esa es toda la tarea. Esta página es un aviso preventivo, no un informe de incidente: no tengo visibilidad sobre si ocurrió algo en su sitio, y no lo he revisado.
Vale la pena considerar un seguimiento, y es condicional a la misma pregunta sobre el ajuste. Si su sitio tenía Iniciar sesión automáticamente activado mientras ejecutaba una versión afectada, entonces era al menos teóricamente posible que a alguien se le hubiera entregado una sesión en una cuenta existente. Actualizar cierra la brecha, pero no deshace el acceso que ya se haya tomado, por lo que en ese caso son sensatas algunas precauciones rutinarias:
- Revise sus cuentas de administrador y cualquier otra cuenta que importe, en busca de entradas que no reconozca, direcciones de correo electrónico que ya no sean las de la persona correcta, o cambios de rol que usted no haya hecho.
- Revise los inicios de sesión recientes y cualquier sesión actualmente activa en busca de cualquier cosa que no pueda explicar.
- Restablezca las contraseñas de sus cuentas de administrador. Regenerar las claves secretas y
sales de WordPress en
wp-config.phpes un paso complementario sensato (los nuevos valores están a un clic de distancia en el generador oficial de claves secretas, y cambiarlas cierra la sesión de todos los usuarios una vez).
Si encuentra algo que le preocupa, tratarlo como cualquier otro acceso no autorizado sospechoso es la respuesta adecuada. Si su sitio nunca tuvo activado el inicio de sesión automático, actualizar por sí solo es suficiente.
Qué hice y qué no hice
Para ser completamente transparente sobre la comprobación detrás de mi correo electrónico: solo
leí archivos que su sitio ya sirve a cada visitante, específicamente el readme.txt público del
plugin, su página de inicio y las direcciones de los recursos escritos en esa página. No
accedí a su área de administración de WordPress, a su base de datos, ni a ninguna parte privada
del sitio.
En particular, nunca envié su formulario de registro, nunca creé una cuenta y nunca toqué el paso de inicio de sesión automático. No se envió, probó ni explotó nada. Eso importa más aquí que en la mayoría de estas páginas, porque registrarse es la acción exacta de la que trata este problema, por lo que “no lo toqué” es toda la diferencia entre una divulgación y una intrusión.
Tampoco publico deliberadamente los detalles que ayudarían a alguien a actuar sobre este problema. La descripción anterior se detiene en el nivel que necesita un propietario de sitio, y no enlazo ningún código de prueba de concepto.
Esta es una observación basada en la versión: su sitio informa una versión en el rango afectado. No es una afirmación de que su sitio fuera explotable en el momento en que lo verifiqué. Dado que el problema depende de un ajuste que no puedo ver, un sitio en ese rango bien podría no estar expuesto en absoluto, y un sitio en ese rango podría estar protegido por otros medios, como un firewall de aplicaciones web o una corrección retroportada.
No tengo webmaster / estoy atascado
Si usted no es la persona que mantiene el sitio, por favor reenvíe esta página a quien lo haga (su desarrollador web, agencia o proveedor de alojamiento). Reconocerán rápidamente los pasos anteriores.
Si usted está manteniendo el sitio usted mismo y se queda atascado, estoy encantado de ayudarle a orientarse en la dirección correcta sin costo alguno. Póngase en contacto utilizando los datos de contacto que aparecen a continuación.
Contacto
Evan Harris, investigador de seguridad
- Correo: security@mail.mcpsec.dev
- X: @Evan__Harris
- GitHub: eharris128
- LinkedIn: Evan Harris
Me pongo en contacto sobre problemas como este puramente para ayudar a los operadores a asegurar sus sitios. Si prefiere no ser contactado de nuevo, simplemente hágamelo saber y lo respetaré.
Referencias
Avisos oficiales y seguimiento
Fabricante / plugin