Alerta de seguridad de Hong Kong XSS WordPress AMP (CVE20262027)

Cross Site Scripting (XSS) en el mejorador AMP de WordPress – Capa de compatibilidad para el plugin oficial AMP
Nombre del plugin AMP Enhancer – Capa de compatibilidad para el plugin oficial de AMP
Tipo de vulnerabilidad Scripting entre sitios (XSS)
Número CVE CVE-2026-2027
Urgencia Baja
Fecha de publicación de CVE 2026-02-13
URL de origen CVE-2026-2027

XSS almacenado autenticado (Administrador) en AMP Enhancer (≤1.0.49): Lo que los propietarios de sitios de WordPress deben hacer ahora

Autor: Experto en seguridad de Hong Kong — Publicado: 2026-02-13

Un desglose práctico y experto del XSS almacenado autenticado descubierto en el plugin AMP Enhancer (versiones ≤1.0.49): cómo puede ser abusado, cómo detectarlo y mitigaciones paso a paso — incluyendo parches virtuales inmediatos y recomendaciones de endurecimiento a largo plazo.

Resumen

  • Vulnerabilidad: XSS (cross-site scripting) almacenado autenticado (Administrador).
  • Software afectado: AMP Enhancer — Capa de compatibilidad para el plugin oficial de AMP, versiones ≤1.0.49.
  • CVE: CVE-2026-2027
  • Severidad: Media (calificación del mantenedor CVSS 5.9). El impacto en el mundo real depende del acceso del atacante a una cuenta de administrador.
  • Prerrequisitos de explotación: Privilegios de administrador en el sitio (o convencer a un administrador para que guarde CSS malicioso).
  • Mitigaciones inmediatas: desactivar o eliminar el plugin; inspeccionar y sanitizar la configuración almacenada en la base de datos; restringir cuentas de administrador; aplicar parches virtuales / reglas WAF para bloquear cargas útiles de CSS malicioso mientras se prepara una limpieza completa.
  • Recuperación: Si se sospecha un compromiso, aislar el sitio, rotar credenciales, escanear y eliminar contenido inyectado, y restaurar desde una copia de seguridad limpia si es necesario.

Por qué este XSS almacenado es importante — incluso con requisitos solo para administradores

Aunque la explotación requiere que un administrador guarde la carga útil, la superficie de ataque sigue siendo significativa:

  • Credenciales de administrador robadas o phishing permiten un punto de apoyo persistente a través de XSS almacenado.
  • Contratistas maliciosos o internos con acceso de administrador pueden inyectar intencionalmente cargas útiles.
  • La ingeniería social puede engañar a un administrador para que pegue CSS aparentemente legítimo que contenga cargas útiles ocultas.

Las posibles consecuencias incluyen robo de sesión, redirecciones en todo el sitio, envenenamiento de SEO, inyección de scripts de puerta trasera y daño a la reputación. Debido a que la carga útil se almacena en una configuración y se sirve en todo el sitio, una sola inyección exitosa puede afectar a cada visitante y administrador que cargue páginas afectadas.

Cómo funciona el problema (visión técnica)

  1. The plugin provides an “AMP Custom CSS” setting where administrators can enter CSS for AMP pages.
  2. La configuración se persiste en la base de datos y luego se refleja en el marcado de la página para la salida AMP.
  3. La sanitización insuficiente permite la entrada que puede ser interpretada por el navegador como ejecutable o capaz de salir del contexto CSS (por ejemplo, construcciones que cierran un bloque de estilo o introducen HTML).
  4. Debido a que el contenido se almacena y se muestra a los visitantes, el XSS es persistente (almacenado) y se ejecuta en vistas de página posteriores.

Nota: los navegadores modernos y los errores heredados pueden convertir secuencias inesperadas en acciones ejecutables cuando los datos controlados por el usuario se muestran sin una codificación segura.

Escenarios de explotación realistas

  • Credenciales de administrador robadas: el atacante inicia sesión, pega contenido malicioso en AMP Custom CSS, y la carga útil se sirve a los visitantes.
  • Social engineering: admin is convinced to paste “recommended CSS” from an untrusted source that contains obfuscated payloads.
  • Insiders maliciosos: un empleado o contratista con acceso de administrador almacena una carga útil para robar datos o sabotear el sitio.

Señales de que ya puedes estar afectado

  • JavaScript o fragmentos de HTML en línea inesperados en el código fuente de la página o dentro de los estilos.
  • Páginas del sitio redirigiendo a dominios externos.
  • Comportamiento inusual del panel de control o notificaciones de administrador inesperadas.
  • Nuevos o desconocidos usuarios administradores, publicaciones/páginas editadas que no hiciste, tareas cron sospechosas o archivos de núcleo/tema/plugin modificados.
  • Advertencias de motores de búsqueda, listas negras o patrones de tráfico inusuales.

Si usas una versión afectada del plugin y notas estas señales, asume un posible compromiso y sigue los pasos de contención de inmediato.

Pasos inmediatos para los propietarios del sitio (ordenados)

  1. Pon el sitio en modo de mantenimiento o reduce la exposición: restringe temporalmente el acceso público mientras investigas.
  2. Desactiva el plugin AMP Enhancer: la mitigación inmediata más simple es desactivar o eliminar el plugin para detenerlo de servir contenido almacenado.
  3. Inspecciona y limpia la configuración de AMP Custom CSS:

    • Verifica la opción del plugin donde se almacena el CSS personalizado (las claves comunes pueden incluir amp_custom_css o nombres de opciones específicas del complemento).
    • Si encuentras contenido inesperado, elimínalo o establece el campo como una cadena vacía.
    • Ejemplo WP-CLI: wp option get amp_custom_css y para limpiar: wp option update amp_custom_css ''
    • Ejemplo de inspección SQL (siempre haz una copia de seguridad primero):
    SELECT option_name, option_value FROM wp_options WHERE option_name LIKE '%amp%' OR option_value LIKE '%javascript:%' OR option_value LIKE '%
  4. Rotate credentials and lock admin access:

    • Reset passwords for all administrator accounts and enforce strong, unique passwords.
    • Require two-factor authentication for all admins where possible.
    • Remove or downgrade unknown admin users.
  5. Review recent admin activity: check audit logs (if available) to identify who changed settings; enable logging if absent.
  6. Scan the site for other indicators: perform a full-site malware scan and inspect posts, options, theme files, and uploads for injected code.
  7. Review backups: if you detect a compromise and cannot clean confidently, restore from a known-good backup taken prior to the injection.
  8. Apply virtual patching / WAF rules as an interim measure: block suspicious payloads from being saved and prevent already-stored payloads from reaching clients (details below).
  9. Monitor and re-scan regularly after cleanup to detect reinfection or repeated malicious changes.

Finding the AMP Custom CSS entry (WP-CLI and SQL)

Examples to help locate suspect values (replace table prefix if not wp_):

# WP-CLI (if you know the option name)
wp option get amp_custom_css

# Scan options if unsure
wp db query "SELECT option_name FROM wp_options WHERE option_value LIKE '%amp%' OR option_value LIKE '%

Always export suspicious content to a safe environment for analysis before removing it from production.

Safe remediation of the stored setting

  • Review CSS for dangerous constructs:
    • url(javascript: patterns
    • expression(...) (legacy IE)
    • -moz-binding or behavior: properties
    • Embedded HTML fragments like ,