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 powermail (la extensión de formularios para TYPO3 de in2code, paquete de Composer in2code/powermail, que se encuentra en sus archivos bajo typo3conf/ext/powermail/ o, en una instalación con Composer, bajo vendor/in2code/powermail/) 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 se aplica a su sitio, a qué versión actualizar y cómo comprobar si alguien ya lo ha usado contra usted.

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 formularios que tienen un campo marcado como el nombre del remitente, y no puedo ver desde el exterior cómo están configurados sus formularios:

  • El problema solo alcanza a un formulario de powermail que tenga al menos un campo con la casilla “Este campo contiene el nombre del remitente” (en inglés: “This field contains the Name of the sender”, en la pestaña Extendido del campo, en el backend de TYPO3) marcada. Si ninguno de sus formularios usa esa marca, esto no le afecta, incluso en una versión afectada.
  • Dicho esto, la marca es común. El campo estándar Nombre del asistente de formularios suele activarla, y el propio aviso del fabricante califica la configuración de “común y cercana al valor por defecto”. Así que, por favor, compruébelo en lugar de asumirlo.

Puedo leer su versión de powermail desde un archivo público, pero no puedo leer la configuración de sus formularios, por lo que este aviso es una advertencia preventiva más que un hallazgo confirmado sobre su sitio.

El problema es CVE-2026-77136 (aviso de TYPO3 TYPO3-EXT-SA-2026-022), una inyección de plantillas del lado del servidor sin autenticación en el manejo de correo de la extensión. Afecta a todas las versiones de powermail anteriores a 10.9.3, todas las versiones 11.x y 12.x anteriores a 12.6.1 y todas las versiones 13.x anteriores a 13.2.1. Está corregido en 10.9.3, 12.6.1 y 13.2.1, todas publicadas el 25 de agosto de 2026, una por cada línea de TYPO3. No hay ninguna versión lo bastante antigua como para no estar afectada: la debilidad forma parte del diseño original de la extensión, no es algo que llegara en una versión posterior.

Una palabra sobre la urgencia, porque este es un aviso condicional. Si ninguno de sus formularios tiene un campo marcado como el nombre del remitente, actualizar es mantenimiento ordinario. Si alguno de ellos lo tiene, por favor trate la actualización como una prioridad: el aviso del fabricante informa de que este problema está siendo explotado activamente, y en esa configuración un visitante sin ninguna cuenta puede hacer que su servidor evalúe código de plantilla de su elección, lo que puede revelar su configuración, sus variables de entorno y su código fuente y, según la instalación, conducir a la ejecución remota de código.

Esta es una vulnerabilidad de una extensión, no del núcleo de TYPO3. Un TYPO3 completamente actualizado no le protege si la propia extensión powermail 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, enviar ninguno de sus formularios ni mandarle 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 la versión que los propios recursos de la extensión identifican. Específicamente no envié ningún formulario, no mandé sintaxis de plantilla a ninguna parte y no me acerqué al manejo de correo de la extensión. Nada de esta comprobación toca sus datos, su backend 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

Powermail construye los formularios de contacto y de consulta de muchísimos sitios TYPO3. Cuando un visitante envía un formulario, la extensión manda un correo al destinatario configurado del sitio, y rellena el nombre del remitente de ese correo a partir de los campos del formulario que el editor haya marcado como contenedores del nombre del remitente.

Powermail permite a los editores escribir pequeños fragmentos del lenguaje de plantillas Fluid de TYPO3 en ciertos ajustes del correo, por ejemplo para que un asunto pueda decir “Message from {firstname}”. Esa es una funcionalidad deliberada para valores que un editor ha escrito. En las versiones afectadas, el nombre del remitente ensamblado a partir de la propia entrada del visitante se entregaba al mismo motor de plantillas, como si lo hubiera escrito un editor. Así que un visitante podía teclear sintaxis Fluid en el campo de nombre de un formulario público, y el servidor la evaluaba al construir el correo para el destinatario.

De eso se derivan dos cosas, que tiran en direcciones opuestas. La primera es que esto solo importa donde un campo de formulario lleva realmente la marca de nombre del remitente; un sitio cuyos formularios no usan tal campo no es alcanzable a través de este problema. La segunda es que donde la marca está activada, no se requiere ninguna cuenta, ninguna contraseña ni la cooperación de nadie: el formulario está abierto al público por diseño, y lo único que el atacante necesita hacer es enviarlo. El fabricante califica el problema de crítico (una puntuación CVSS 4.0 de 9.5), y su aviso dice que está siendo explotado activamente.

Estoy describiendo esto al nivel que necesita un propietario de sitio para actuar, y no más. No publico los detalles que permitirían a alguien reproducirlo, y le pediría que no lo intente contra su propio sitio ni el de nadie más. Comprobar sus campos de formulario y su versión, como se describe a continuación, le dice todo lo que necesita para decidir qué hacer.

Si mi correo citó este problema, significa que la versión que identifican los recursos de su sitio cae dentro del rango afectado. No probé si su sitio en particular es explotable, y no puedo ver cómo están construidos sus formularios. Lo único que observé fue la versión.

¿Estoy afectado?

Dos preguntas lo deciden, en este orden.

Primero: ¿lleva algún campo de formulario la marca de nombre del remitente?

Esta es la pregunta decisiva, y solo usted puede responderla. Comprobar sus propios formularios es completamente seguro y es precisamente el objetivo de esta página.

  1. Inicie sesión en el backend de TYPO3 y abra la página (o la carpeta) que contiene sus formularios de powermail. Cada formulario es un registro con una o más páginas, y cada página contiene los campos.
  2. Abra cada registro de campo y busque en su pestaña Extendido la casilla “Este campo contiene el nombre del remitente”. Lo más habitual es que esté marcada en el campo donde los visitantes escriben su nombre.
  3. Si ningún campo de ninguno de sus formularios tiene esa casilla marcada, este problema no alcanza a su sitio, incluso en una versión afectada, aunque actualizar sigue mereciendo la pena como mantenimiento ordinario.
  4. Si algún campo la tiene marcada, el problema le afecta y debería actualizar cuanto antes (vea Cómo actualizar). Si no puede actualizar de inmediato, desmarque esa casilla en todos los campos que la tengan: es la mitigación recomendada por el propio fabricante y cierra el problema por sí sola. El coste es que el nombre del remitente dejará de rellenarse en los correos que envía el formulario, hasta que actualice y vuelva a marcarla.

Por favor, no intente reproducir el problema contra su propio sitio ni el de nadie más; no necesita hacerlo para responder la pregunta anterior.

Segundo: ¿qué versión está ejecutando?

No tiene que fiarse de mi palabra. Tenga en cuenta que no existe un archivo público de versión para una extensión de TYPO3 como lo hay, por ejemplo, para un plugin de WordPress, así que las lecturas fiables se hacen todas desde dentro de su instalación:

Desde el backend de TYPO3 (fuente autorizada): vaya a Herramientas de administración y luego a Extensiones. La lista de extensiones instaladas muestra la versión de cada una; busque powermail. (En una instalación basada en Composer la lista es de solo lectura, pero sigue mostrando la versión instalada.)

Desde la línea de comandos, en una instalación con Composer: ejecute composer show in2code/powermail en el directorio de su proyecto. La línea versions es la versión instalada.

Desde los archivos: abra ext_emconf.php dentro de la carpeta de la extensión (typo3conf/ext/powermail/ en una instalación clásica, vendor/in2code/powermail/ en una con Composer) y busque la entrada 'version' cerca del principio.

Luego aplique esta regla, teniendo en cuenta que las versiones se comparan numéricamente, no alfabéticamente (10.9.2 es más nueva que 10.8.2, y 13.2.1 es más nueva que 13.2.0):

  • 13.0.0 hasta 13.2.0: potencialmente afectado, sujeto a la pregunta de la marca anterior. Actualice a 13.2.1 o posterior.
  • 11.0.0 hasta 12.6.0: potencialmente afectado, sujeto a la pregunta de la marca anterior. Actualice a 12.6.1 o posterior. Esto incluye todas las versiones 11.x: no hay una corrección separada para 11.x, y 12.6.1 funciona sobre las mismas versiones de TYPO3 (12.2 a 12.5) que 11.x, así que es una simple actualización de la extensión sin necesidad de actualizar TYPO3.
  • 10.9.2 y todo lo anterior: potencialmente afectado, sujeto a la pregunta de la marca anterior. Si está en 9.x o 10.x (TYPO3 11.5), actualice a 10.9.3 o posterior. Si está en 7.x u 8.x (TYPO3 8.7 a 10.4), vea el párrafo siguiente.
  • 13.2.1, 12.6.1 o 10.9.3 y posteriores dentro de su línea: ya corregido en lo que respecta a este problema.

Si está en powermail 7.x u 8.x, no existe una versión corregida que funcione sobre su versión de TYPO3: 10.9.3 requiere TYPO3 11.5. Para esos sitios, la instrucción del fabricante es la mitigación de arriba, desmarcar “Este campo contiene el nombre del remitente” en todos los campos que la tengan, y planificar una actualización de TYPO3 a una línea con soporte, donde hay disponible una versión corregida de powermail. Las versiones de TYPO3 sobre las que funcionan esas generaciones llevan mucho tiempo fuera de soporte, lo cual es una segunda razón para planificar ese paso.

Una comprobación que no funciona, así que por favor no confíe en ella. Si mira el código fuente de su página verá los recursos de la extensión con un número largo adjunto, por ejemplo .../JavaScript/Powermail/Form.min.js?1785752971 (o incrustado en el nombre del archivo como Form.min.1785752971.js). Ese número es una marca de tiempo del archivo que TYPO3 añade para invalidar la caché, no una versión, y no se puede leer una versión de él a simple vista. Da la casualidad de que es lo que usó mi comprobación, de una manera que explico más abajo, pero las lecturas anteriores son las que debe fiarse.

Cómo actualizar

Las versiones corregidas están publicadas en el TYPO3 Extension Repository (TER), en Packagist y en GitHub, así que se trata de una actualización normal de extensión. Haga primero una copia de seguridad y luego actualice por el mecanismo que corresponda a cómo se instaló su sitio:

  1. 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 clic.
  2. Instalación con Composer (la mayoría de los sitios en TYPO3 12 y 13, y muchos en 11): en el directorio de su proyecto ejecute la actualización del requisito para su línea, por ejemplo composer require "in2code/powermail:^13.2.1" en TYPO3 13, "in2code/powermail:^12.6.1" en TYPO3 12, o "in2code/powermail:^10.9.3" en TYPO3 11.5. Luego ejecute sus pasos habituales posteriores a una actualización (vendor/bin/typo3 extension:setup en TYPO3 12 y 13, o el equivalente que use su despliegue) y vacíe las cachés.
  3. Instalación clásica (sin Composer): en el backend de TYPO3 vaya a Herramientas de administración y luego a Extensiones, cambie el desplegable a Obtener extensiones, busque powermail y actualícelo a la versión corregida de su línea. Si su sitio no puede acceder al TER, el aviso del fabricante enlaza directamente los archivos de las versiones (vea Referencias); suba el archivo mediante Extensiones y el botón de subida. Vacíe las cachés después.
  4. Después de actualizar, confirme la nueva versión (13.2.1, 12.6.1 o 10.9.3, la que corresponda a su línea) con los pasos anteriores, y envíe uno de sus propios formularios como prueba para comprobar que los correos siguen llegando con normalidad.

Mientras está en ello, vale la pena confirmar que el propio TYPO3 y sus demás extensiones están al día, ya que el mismo principio se aplica a todos.

Después de actualizar: ¿fue esto ya usado contra usted?

Actualizar cierra el problema y, para muchos 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 mirado.

Pero como el fabricante informa de que este problema ha sido explotado en la práctica, merece la pena un seguimiento, y es condicional a la misma pregunta sobre la marca. Si su sitio tuvo un formulario con un campo de nombre del remitente mientras ejecutaba una versión afectada, entonces fue posible que alguien ejecutara código de plantilla en su servidor a través de ese formulario, y actualizar no deshace nada que ya haya podido ser leído. El aviso del fabricante ofrece una autocomprobación sencilla, y no cuesta nada realizarla:

  • Revise los nombres de remitente que han recibido sus formularios. Compruebe los correos que sus formularios le enviaron, y los envíos almacenados en el backend de TYPO3 (el propio módulo Mails de powermail) o en la tabla de la base de datos tx_powermail_domain_model_mail, en busca de nombres de remitente que contengan sintaxis Fluid como f:, v: o {namespace. El nombre de un visitante real nunca tiene ese aspecto.
  • Si encuentra alguno, la orientación del fabricante es tratar el sistema como potencialmente comprometido. Dado que este problema puede exponer la configuración y las variables de entorno, la respuesta sensata en ese caso es rotar los secretos que guarda su sitio: la contraseña de la base de datos, la encryptionKey de TYPO3, la contraseña de la Install Tool y cualquier clave de API o credencial almacenada en su configuración o su entorno. Revise sus usuarios del backend en busca de cuentas que no reconozca, busque archivos inesperados en el servidor y, si su organización tiene un equipo de seguridad informática o un CERT nacional, involúcrelos.
  • Si no encuentra ninguno, y especialmente si ningún campo llevaba la marca desde el principio, la actualización por sí sola es suficiente.

Para ser claro sobre el encuadre: esto es una autocomprobación, no una declaración de que su sitio fue atacado. Este aviso se basa en una huella de versión, no en ninguna evidencia de un incidente.

Qué hice y qué no hice

Para ser completamente transparente sobre la comprobación detrás de mi correo: solo leí archivos que su sitio ya sirve a cada visitante, concretamente su página de inicio y las direcciones de los recursos de powermail escritas en ella. No accedí a su backend de TYPO3, a su base de datos, a la configuración de sus formularios ni a ninguna parte privada del sitio.

En particular, yo nunca envié ninguno de sus formularios y nunca mandé sintaxis de plantilla a su sitio ni al de nadie más. No se envió, probó ni explotó nada. Eso importa aquí más que en la mayoría de estas páginas, porque el envío de un formulario es exactamente la acción de la que trata este problema, así que «no lo toqué» es toda la diferencia entre una divulgación y una intrusión.

Cómo se identificó la versión, dado que una extensión de TYPO3 no publica ningún archivo de versión: TYPO3 añade a la URL de cada recurso su hora de última modificación, como en Form.min.js?1785752971. En un sitio instalado con Composer, esa hora es el momento en que se publicó la versión, porque Composer la conserva al desempaquetar el paquete, así que el número identifica la versión con exactitud: cada versión de powermail tiene el suyo propio. Comparé el número que sirve su sitio con las horas de publicación conocidas y le escribí solo ante una coincidencia exacta. Cualquier otra cosa, que es lo que típicamente sirve un sitio instalado mediante el Extension Manager o desplegado copiando archivos, se lee como “desconocido”, y a esos sitios no les escribí en absoluto.

Ese método tiene un punto ciego conocido, y se equivoca del lado de la precaución. Las correcciones cambian solo el código PHP de la extensión, no sus recursos públicos. Así que si su sitio fue parcheado reemplazando solo el código (un parche manual en caliente en lugar de una actualización completa), sus recursos siguen llevando la marca de tiempo de la versión antigua y se lee como una versión afectada aunque esté protegido. Si ya lo ha remediado por otros medios, no se necesita ninguna acción, y le pido disculpas por la molestia.

También me abstengo deliberadamente de publicar los detalles que ayudarían a alguien a explotar 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: los recursos de su sitio identifican una versión en el rango afectado. No es una afirmación de que su sitio fuera explotable en el momento en que lo comprobé. Como el problema depende de un ajuste de campo de formulario que no puedo ver, un sitio en ese rango bien puede no estar expuesto en absoluto, y un sitio en ese rango puede estar protegido aparte por otros medios, como un firewall de aplicaciones web.

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 mantiene el sitio usted mismo y se queda atascado, estaré encantado de orientarle en la dirección correcta sin coste alguno. Póngase en contacto usando los datos que aparecen a continuación.

Contacto

Evan Harris, investigador de seguridad

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 / extensión