Aviso de seguridad de Balbooa Forms
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 Balbooa Forms (el com_baforms de Balbooa, que se encuentra en
sus archivos en /components/com_baforms/ y /administrator/components/com_baforms/) afectada por
un problema de seguridad conocido. Balbooa Forms es una extensión de creación de formularios para el
sistema de gestión de contenidos Joomla. Esta página explica por qué esto importa, cómo leer su
versión de forma fiable y cómo solucionarlo.
Este aviso trata sobre CVE-2026-56291, un fallo crítico (CVSS 10.0) y explotado activamente que permite la ejecución remota de código sin autenticación a través del manejo de adjuntos de formularios del front-end de la extensión. Afecta a todas las versiones anteriores a 2.4.1. Se añadió al catálogo de vulnerabilidades explotadas conocidas de la Agencia de Seguridad de Ciberseguridad e Infraestructura de EE. UU. el 10 de julio de 2026.
La versión que corrige este problema no es la versión a la que debe actualizar, y esto es lo más importante de esta página. La 2.4.1, publicada el 9 de julio de 2026, sí corrige CVE-2026-56291. Pero un segundo fallo, independiente, en la misma extensión, CVE-2026-65880, afecta a las versiones hasta la 2.4.2.1 inclusive. Un operador que actualice a la 2.4.1 o a la 2.4.2 cierra por tanto la puerta de la que trata este aviso, pero deja otra abierta. Una versión posterior, la 2.4.3.1, es una versión de seguridad adicional que refuerza la misma ruta de carga. Así que: actualice Balbooa Forms a la 2.4.3.1 o posterior, que es la versión actual en el momento de escribir esto. No se detenga en la 2.4.1.
No hay ninguna versión anterior que sea segura. Las protecciones que ponen fin a este problema se añadieron en la 2.4.1, lo que significa que estaban ausentes de todas las versiones anteriores a ella. No se trata de un fallo que se introdujera a mitad de la historia de la extensión: el propio registro de cambios del proveedor muestra la ruta de carga del front-end funcionando de forma continua a través de toda la línea 2.0.x y hasta la 1.x, y confirmé el manejo sin proteger directamente en el código fuente de la 2.1.x, la 2.2.0 y la 2.3.x. «Mi instalación es demasiado antigua para verse afectada» no es una salida aquí, y en la práctica muchas de las instalaciones afectadas que veo son, de hecho, genuinamente antiguas.
No hace falta que nada esté habilitado para que esto le afecte. La suposición obvia es que un sitio solo está expuesto si publica un formulario que acepta archivos adjuntos, así que quiero dejar explícito que este no es el caso. No hay ninguna opción de configuración que saque a una versión afectada del rango, y la edición gratuita de la extensión incluye el código afectado igual que las ediciones de pago, así que «solo usamos la versión gratuita» tampoco es una salida. Lo único que importa es qué versión está ejecutando.
Dado que este fallo fue explotado antes de que existiera una corrección, actualizar por sí solo no es toda la tarea. También debería comprobar si su sitio muestra señales de que alguien llegó antes (vea Si tenía una versión afectada más abajo).
Este es un fallo de la extensión, no un fallo del núcleo de Joomla. Afecta por igual a sitios en Joomla 4, 5 y 6: un núcleo de Joomla totalmente actualizado no le protege si la extensión Balbooa Forms en sí está desactualizada.
¿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, subir nada ni explotar nada.
Lo único que hice fue mirar archivos que su sitio web sirve a todos los visitantes (del mismo modo
que su página de inicio es pública): sus páginas, las propias direcciones de los recursos front-end
de la extensión escritas en ellas, y el archivo de manifiesto público de la extensión. Eso es todo.
En concreto, no toqué la función de carga afectada, no envié ningún formulario en su sitio, y no
solicité el directorio images/baforms/uploads/ en su sitio ni en ningún otro lugar. Esa ruta
aparece más adelante en esta página únicamente como un lugar donde usted puede mirar en su
propio sitio. Nada de esta comprobación toca sus datos, su área de administración ni ninguna parte
privada de su sitio.
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
Balbooa Forms crea formularios de contacto, formularios de consulta y formularios similares en sitios Joomla. Parte de lo que ofrece es la posibilidad de que un visitante adjunte un archivo al enviar un formulario.
En las versiones afectadas, el manejo que hay detrás de esa función puede alcanzarse sin iniciar sesión y no comprueba correctamente qué tipo de archivo se le está proporcionando. Esa combinación permite a un atacante colocar un programa de su elección en su servidor y ejecutarlo: ejecución remota de código completa, sin necesidad de ninguna cuenta ni de ninguna cooperación por su parte.
Este no es un riesgo teórico. El fallo recibió una puntuación de 10,0 sobre 10, la máxima, y se está explotando activamente en la práctica. Se observó explotación desde el 8 de julio de 2026, un día antes de que se publicara la corrección el 9 de julio de 2026, y la Agencia de Seguridad de Ciberseguridad e Infraestructura de EE. UU. lo añadió a su catálogo de vulnerabilidades explotadas conocidas el 10 de julio de 2026. Fue reportado por Phil Taylor, de mySites.guru.
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 lo intente contra su propio sitio ni contra el de nadie más. Leer su número de versión, como se describe más abajo, 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 es anterior a la 2.4.1. No probé si su sitio en particular es explotable o ya está comprometido, solo que informa una versión afectada.
Cómo comprobar su versión
No tiene que fiarse de mi palabra sobre qué versión está ejecutando. Hay dos formas fiables de comprobarlo, y una señal engañosa específica de esta extensión que vale la pena conocer.
Desde el administrador de Joomla (fuente autorizada):
- Inicie sesión en su administrador de Joomla (normalmente en
yourdomain.com/administrator). - Vaya a Sistema luego Gestionar luego Extensiones (o Extensiones luego Gestionar, según su versión de Joomla).
- Busque Balbooa Forms y anote la versión instalada.
Desde el archivo de manifiesto en disco: abra
/administrator/components/com_baforms/baforms.xml
y lea su elemento <version>. Eso es lo que su sitio está ejecutando realmente.
Preste atención a qué baforms.xml lee. Una instalación de Joomla con esta extensión contiene
tres archivos distintos con ese nombre, y solo el de la ruta anterior es el propio del
componente. Las copias en /administrator/manifests/files/ y en /plugins/editors-xtd/baforms/
llevan sus propios números de versión, que son mucho más antiguos y no siguen en absoluto al
componente. Leer una de esas por error subestimará gravemente su versión.
El número de versión en el código fuente de su página no es fiable. Balbooa Forms estampa una
versión en las direcciones de sus recursos front-end, así que si ve el código fuente de una página
que contiene un formulario puede ver algo como ba-form.js?2.3.0.2. Ese número no se lee de los
archivos que se están sirviendo. Proviene de la copia del manifiesto de la extensión que guarda la
base de datos de Joomla, que solo actualiza el instalador de Joomla. Si la extensión se actualizó
alguna vez copiando archivos sobre los antiguos en lugar de instalarla a través de Joomla, la página
puede anunciar una versión que el sitio no está ejecutando, y puede estar equivocada en cualquiera
de las dos direcciones: un número antiguo en archivos actualizados, o un número nuevo en archivos
antiguos. Use en su lugar la pantalla del administrador o el archivo de manifiesto en disco.
A continuación, aplique esta regla:
- Cualquier versión anterior a la 2.4.1: afectada por este problema. No hay ningún punto de corte por debajo del cual una versión más antigua vuelva a ser segura.
- 2.4.1 o 2.4.2: corregida en lo que respecta a este problema, pero sigue afectada por CVE-2026-65880, el fallo independiente mencionado arriba. Continúe.
- 2.4.3.1 o posterior: actual. Aquí es donde quiere estar.
Cómo actualizar
La vía más segura es actualizar a través del propio Joomla, y hacer antes una copia de seguridad:
- Haga 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 use una extensión de copia de seguridad de Joomla.
- En la administración de Joomla, abra Extensiones luego Gestionar luego Actualizar, y haga clic en Buscar actualizaciones. Si aparece una actualización de Balbooa Forms, instálela desde aquí.
- Si no aparece ninguna actualización allí, obtenga la versión más reciente directamente del proveedor, Balbooa, e instálela mediante Extensiones luego Instalar. Tanto la edición gratuita como las de pago se actualizan a través del propio sitio del proveedor.
- Instale a través de Joomla, no copiando archivos sobre los antiguos. Copiar archivos deja desactualizado el registro de la versión de Joomla, que es precisamente lo que hace poco fiable el número del código fuente de la página, y puede dejar archivos antiguos atrás.
- Después de actualizar, confirme el nuevo número de versión (2.4.3.1 o posterior) utilizando los pasos anteriores, y compruebe que sus formularios se siguen mostrando y enviando con normalidad.
Ya que está en ello, conviene confirmar que el propio Joomla y sus demás extensiones están actualizados, ya que el mismo principio se aplica a todos ellos.
Si tenía una versión afectada
Dado que este fallo fue explotado antes de que hubiera una corrección disponible, un sitio que ejecutó una versión afectada no debería suponer que actualizar es suficiente. Actualizar cierra la puerta, pero no le dice si alguien ya había entrado por ella. Vale la pena comprobarlo con calma en lugar de suponer lo peor: la mayoría de los sitios no encontrarán nada.
Esto es lo que usted (o su webmaster) puede buscar en su propio sitio:
-
Archivos PHP inesperados en el directorio de subidas. Busque archivos
.phpen cualquier lugar bajoimages/baforms/uploads/, incluyendo todos sus subdirectorios. Nada legítimo coloca PHP ahí. En un servidor Linux, la comprobación es:find images/baforms/uploads -name '*.php' -type f - Cuentas de administrador que no reconozca. Revise su lista de usuarios en Usuarios luego Gestionar. Además, compruebe las fechas de registro de las cuentas que sí reconoce, ya que una cuenta creada a principios de julio de 2026 que dio por hecho que siempre había estado ahí merece una segunda mirada.
- Archivos PHP en otras partes del sitio modificados alrededor de principios de julio de 2026 o después, en particular aquellos que no pueda explicar.
Si encuentra alguno de estos indicios, trate el sitio como comprometido: rote todas las credenciales (administrador de Joomla, base de datos, FTP/SSH, panel de alojamiento), revise sus cuentas de usuario de Joomla y los grupos a los que pertenecen, y considere restaurar desde una copia de seguridad anterior al 8 de julio de 2026 en lugar de intentar limpiar el sitio in situ. Limpiar in situ es difícil de hacer bien, porque una puerta trasera que haya quedado puede deshacer la limpieza. Si su organización tiene un equipo de seguridad informática o un CERT nacional, avíselos.
Quiero ser claro: no he comprobado su sitio en busca de ninguno de estos indicadores, y no sé si su sitio se vio afectado. Esta lista está aquí para que usted mismo pueda comprobarlo.
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
- Entrada en NVD (CVE-2026-56291)
- GitHub Advisory Database (GHSA-28f5-j5p5-xmmw)
- Catálogo de vulnerabilidades explotadas conocidas de CISA
Proveedor (Balbooa)
Informe y análisis