| Nombre del plugin | WPBakery Page Builder |
|---|---|
| Tipo de vulnerabilidad | XSS almacenado |
| Número CVE | CVE-2025-11160 |
| Urgencia | Baja |
| Fecha de publicación de CVE | 2025-10-15 |
| URL de origen | CVE-2025-11160 |
WPBakery Page Builder <= 8.6.1 — Stored XSS via Custom JS Module (CVE-2025-11160): What site owners must do now
Introducción
A stored Cross‑Site Scripting (XSS) vulnerability affecting WPBakery Page Builder (versions ≤ 8.6.1) was disclosed as CVE-2025-11160. Un atacante con privilegios limitados puede inyectar JavaScript que se ejecuta posteriormente en los navegadores de los visitantes. Los sitios que permiten a cuentas de nivel colaborador o similares crear o editar contenido están expuestos.
Desde la perspectiva de un experto en seguridad de Hong Kong, este informe explica cómo funciona el problema, quiénes están afectados y acciones prácticas e inmediatas que puedes tomar: parches, cambios de configuración, detección/limpieza de contenido y conceptos de parches virtuales con orientación genérica de WAF.
Resumen ejecutivo
- Affected software: WPBakery Page Builder plugin (≤ 8.6.1)
- Vulnerabilidad: XSS almacenado a través del módulo JS personalizado del plugin
- CVE: CVE‑2025‑11160
- Corregido en: 8.7 (actualiza inmediatamente donde sea posible)
- Privilegio requerido para la explotación (reportado): Colaborador (o editor de bajo nivel equivalente)
- Riesgo: Los atacantes que pueden crear o editar contenido del constructor de páginas pueden almacenar cargas útiles de JavaScript que se ejecutan en los navegadores de los visitantes (redirecciones, robo de cookies, secuestro de sesiones, distribución de contenido malicioso).
- Mitigación inmediata: Actualiza a 8.7+, restringe el acceso a los módulos JS personalizados, busca/limpia el contenido del sitio, aplica reglas de WAF/parches virtuales para bloquear la inyección de scripts.
Cómo funciona esta vulnerabilidad (explicación sencilla)
El XSS almacenado surge cuando la entrada no confiable se guarda y luego se renderiza sin la debida sanitización o codificación de salida. Aquí, el módulo “JS personalizado” del plugin permitía que los colaboradores guardaran contenido JS e incluyeran en las plantillas de página en el front end. Dado que el contenido podría incluir JavaScript en bruto o atributos de eventos DOM, los visitantes de una página afectada ejecutarían el código proporcionado por el atacante. El único privilegio requerido es la capacidad de agregar o editar ese módulo personalizado, disponible típicamente para roles de colaborador/autor.
Por qué el XSS almacenado es peligroso
El XSS almacenado es particularmente grave porque el código malicioso persiste en el sitio y se ejecuta para cada visitante de una página infectada. Las consecuencias típicas incluyen:
- Robo de cookies de sesión y toma de control de cuentas (cuando las cookies no están debidamente aseguradas)
- Redirecciones silenciosas a dominios maliciosos
- Spam de SEO e inyección de contenido no autorizado
- Minería de criptomonedas basada en navegador o fraude publicitario
- Ataques secundarios y persistencia (puertas traseras, escalada de privilegios)
Comprender el impacto y la gravedad
CVE‑2025‑11160 está solucionado en 8.7. Algunas evaluaciones colocaron el CVSS alrededor de 6.5. Las puntuaciones numéricas son útiles, pero el riesgo en el mundo real depende del contexto:
- Páginas de alto tráfico que utilizan JS personalizado aumentan la exposición.
- Mala higiene de cuentas (contraseñas compartidas, sin MFA) aumenta la probabilidad de explotación.
- Población de visitantes que incluye usuarios privilegiados (editores, administradores) puede aumentar el impacto.
Dada la utilización común de cuentas de contribuyentes/autores para la gestión de contenido, responda rápidamente.
Acciones inmediatas (paso a paso)
-
Actualice WPBakery Page Builder a 8.7 o posterior.
Esta es la solución definitiva. Actualice a través del administrador de WordPress o su proceso de implementación lo antes posible. Si las actualizaciones inmediatas son imposibles (pruebas de compatibilidad, grandes flotas), aplique las mitigaciones a continuación.
-
Restringir el acceso a la funcionalidad “JS personalizado”.
Revocar temporalmente el acceso de contribuyentes/autores a módulos que permiten JS personalizado. Si utiliza administradores de roles, elimine las capacidades para roles no confiables para editar módulos del constructor de páginas.
-
Escanee el sitio en busca de scripts maliciosos y contenido sospechoso.
Busque etiquetas de script y patrones comunes de XSS en publicaciones, páginas, postmeta y datos almacenados del constructor de páginas (ejemplos a continuación).
- Aplique reglas de WAF/parcheo virtual.