CVE-2026-9104 es una vulnerabilidad de tipo XSS almacenado que afecta al plugin Draft List para WordPress en todas sus versiones hasta la 2.6.3, publicada por INCIBE-CERT en mayo de 2026. Un atacante con rol de autor puede inyectar scripts maliciosos en títulos de borradores que se ejecutan en navegadores de usuarios sin permisos de edición, incluyendo suscriptores y visitantes no autenticados.

En 30 segundos

  • Plugin afectado: Draft List (simple-draft-list) versiones ≤2.6.3
  • Tipo de ataque: XSS almacenado vía títulos de borradores, técnica attribute-breakout
  • Quién puede atacar: cualquier usuario con rol de autor o superior (autenticado)
  • Quién está en riesgo: suscriptores y visitantes sin permisos de edición, incluidos usuarios no autenticados
  • Solución: actualizar a versión 2.6.4 o superior desde el panel de WordPress

Wordfence es un plugin de seguridad para WordPress desarrollado por Wordfence, Inc., que actúa como cortafuegos de aplicación web (WAF) y escanea malware para detectar y bloquear ataques contra sitios WordPress.

¿Qué es CVE-2026-9104? La vulnerabilidad XSS del plugin Draft List

CVE-2026-9104 WordPress es una falla de seguridad de XSS almacenado (Stored Cross-Site Scripting) en el plugin Draft List, una herramienta que permite a los sitios WordPress mostrar listas de borradores públicamente. El problema lo identificó el equipo de Wordfence y fue publicado oficialmente en mayo de 2026.

Draft List es un plugin de nicho pero bastante usado en sitios de comunidades y revistas donde los editores quieren mostrar «próximamente» los artículos en preparación. Esa funcionalidad de exponer títulos de borradores es, paradójicamente, el vector del ataque.

La falla específica está en la sanitización insuficiente del campo «título de borrador» y en la falta de output escaping antes de renderizar esos títulos en páginas públicas. El resultado: un autor puede escribir un título que contiene código JavaScript, y ese código se ejecuta en el navegador de cualquiera que visite la página donde Draft List muestra sus borradores, siempre que ese visitante no tenga permisos de edición.

Cómo funciona el ataque XSS en los títulos de borradores

Ponele que en tu sitio WordPress tenés un colaborador con rol de autor. Ese usuario crea un borrador cuyo título incluye un payload JavaScript usando una técnica de attribute-breakout: básicamente, cierra el atributo HTML donde se inserta el título e inyecta un evento como onmouseover o onerror con código malicioso adentro.

Cuando la página que usa el shortcode de Draft List se renderiza, el plugin toma ese título directamente del post meta y lo imprime en el HTML sin escaparlo correctamente. Cualquier visitante que cargue esa página ejecuta el script en su navegador sin saberlo. Relacionado: comparar soluciones WAF especializadas.

Las rutas de inyección identificadas están en el archivo create-lists.php, línea 305 y línea 396. Dos puntos donde el código toma el título del borrador y lo manda directo al output.

El detalle que lo hace más complicado: la ejecución del payload ocurre específicamente cuando el usuario que ve la página no tiene capacidades de edición. Es decir, si un administrador visita la página, puede que el plugin aplique alguna escapada adicional o que el contexto sea diferente. Pero un suscriptor, un visitante casual, alguien que llegó desde Google, no tienen esa protección. Eso amplía mucho la superficie de exposición.

¿Quién está en riesgo? Versiones afectadas y roles vulnerables

Todas las versiones de Draft List hasta la 2.6.3 inclusive son vulnerables. No hay versión «parcialmente afectada»: si no actualizaste a 2.6.4 o superior, tu sitio tiene la falla.

En cuanto a roles, hay dos lados del problema:

  • Para inyectar el payload: necesitás rol de autor o superior (editor, administrador). Un suscriptor solo no puede crear el XSS.
  • Para ser víctima del payload: alcanza con ser suscriptor o visitante no autenticado. O sea, tu audiencia general.

¿Cuántos sitios usan Draft List? No tengo datos exactos de instalaciones activas a mayo 2026, pero el plugin tiene historial en el repositorio oficial y suficiente adopción como para que Wordfence lo cubriera. Si tu sitio tiene múltiples autores o colaboradores, el riesgo sube: más cuentas con capacidad de crear borradores, más vectores posibles.

Severidad CVSS: ¿cuán peligrosa es realmente?

El puntaje CVSS v3.1 es 6.4 (Medio), con el vector AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N. Desglosado:

MétricaValorQué significa
Vector de acceso (AV)Red (N)El ataque se ejecuta remotamente, sin acceso físico
Complejidad (AC)Baja (L)No requiere condiciones especiales para explotar
Privilegios requeridos (PR)Bajo (L)Solo necesita rol de autor
Interacción del usuario (UI)Ninguna (N)La víctima no necesita hacer ninguna acción especial
Alcance (S)Cambiado (C)Afecta recursos fuera del contexto del plugin
Confidencialidad (C)Bajo (L)Acceso limitado a datos del usuario
Integridad (I)Bajo (L)Modificación limitada
Disponibilidad (A)Ninguna (N)No derrumba el sitio
cve-2026-9104 wordpress diagrama explicativo

Un 6.4 Medio puede sonar tranquilizador, pero el detalle que me preocupa es la combinación de «sin interacción del usuario» y «alcance cambiado». El atacante no necesita engañar a nadie para que haga click en nada: el payload se ejecuta solo con que la víctima cargue la página. Eso, con un plugin que muestra listas de borradores en páginas públicas, es un escenario bastante concreto. Complementá con detectar si hay malware instalado.

¿Alguien lo está explotando activamente en mayo 2026? No hay reportes públicos confirmados hasta la fecha de publicación. Eso sí, ahora que el CVE es público, esa ventana se achica.

¿Cómo saber si tu sitio WordPress es vulnerable?

Tres pasos y no te lleva más de dos minutos:

  • Paso 1: Entrá a tu panel de WordPress y andá a Plugins > Plugins instalados. Buscá «Draft List» o «simple-draft-list».
  • Paso 2: Si lo tenés instalado, fijate la versión que muestra. Si es 2.6.3 o inferior, sos vulnerable.
  • Paso 3: Revisá qué usuarios tienen rol de autor o superior. Cualquiera de ellos podría (teóricamente) inyectar un payload.

Si el plugin no está instalado, no tenés este problema puntual. Si está instalado pero inactivo, el riesgo es menor porque el shortcode no renderiza en el front-end, pero la recomendación igual es actualizar antes de reactivar.

Un paso adicional que no está de más: revisá en Entradas > Borradores si hay borradores con títulos que parezcan raros o con caracteres como <, >, " o javascript: en el título. Un borrador normal no tiene eso.

Parche y actualización a versión segura

La corrección está en la versión 2.6.4, donde se agregó la sanitización y el output escaping que faltaba en las líneas 305 y 396 de create-lists.php. Actualizar desde el panel es la solución completa.

Pasos para actualizar:

  • En el panel de WordPress, andá a Plugins > Plugins instalados
  • Si hay actualización disponible, vas a ver el aviso bajo el plugin. Hacé click en «Actualizar ahora»
  • Verificá que la versión que muestra ahora sea 2.6.4 o superior
  • Si la actualización automática falla (a veces pasa por permisos de archivos), descargá la versión nueva desde el repositorio oficial y subila manualmente vía Plugins > Añadir nuevo > Subir plugin

No necesitás desactivar el plugin si actualizás rápido. La falla es explotable pero requiere que alguien con acceso de autor decida hacerlo conscientemente: si confiás en todos los autores de tu sitio y actualizás en las próximas horas, el riesgo real es bajo. El problema es si tenés autores que no administrás directamente o si tu sitio acepta registros abiertos con rol de autor. Te puede servir nuestra cobertura de otras vulnerabilidades críticas de WordPress.

Medidas de mitigación mientras esperás actualizar

Si por alguna razón no podés actualizar de inmediato (sitio en producción con mantenimiento programado, testing previo requerido, lo que sea), hay algunas cosas que podés hacer en el mientras tanto:

  • Desactivar Draft List temporalmente: Si el plugin no está activo, el shortcode no renderiza en el front-end y el vector de ejecución desaparece.
  • Limitar roles: Si podés, bajá el rol de colaboradores a «colaborador» en vez de «autor». Los colaboradores no pueden publicar ni sus propios borradores aparecen en los listados públicos de la misma forma.
  • Monitorear borradores existentes: Revisá si ya hay títulos sospechosos en los borradores actuales. Si encontrás algo raro, editá el título antes de reactivar el plugin.
  • Revisar logs: Si tenés un plugin de seguridad como Wordfence activo, revisá los logs de los últimos días por requests inusuales o intentos de inyección.

Estas son medidas temporales. La solución real es la actualización a 2.6.4.

Si tu sitio está en un hosting que gestiona actualizaciones automáticas de plugins (algunos servicios de hosting argentinos como donweb.com tienen opciones de administración WordPress con actualizaciones automáticas), verificá que el sistema haya aplicado el parche y que la versión activa sea 2.6.4 o superior.

Qué está confirmado y qué no

ÍtemEstado
Vulnerabilidad en versiones ≤2.6.3Confirmado (INCIBE-CERT, Wordfence)
Versión 2.6.4 con parche aplicadoConfirmado (repositorio oficial de plugins)
Vector de inyección en create-lists.php L305 y L396Confirmado (código fuente público)
Explotación activa en la naturaleza (mayo 2026)No confirmado — sin reportes públicos hasta la fecha
Número exacto de sitios afectadosNo disponible públicamente

Errores comunes al manejar esta vulnerabilidad

Error 1: Pensar que el CVSS 6.4 significa «no urgente». El puntaje Medio refleja que el impacto directo es limitado, pero no que sea seguro ignorarlo. Con el vector público y la explotación sin interacción del usuario requerida, la ventana de exposición es real.

Error 2: Desactivar el plugin y creer que eso es suficiente a largo plazo. Desactivar es una medida temporal válida, pero si el plugin tiene función que usás, vas a tener que volver a activarlo. Cuando lo hagas sin actualizar, volvés a estar expuesto. Actualizá y listo.

Error 3: Asumir que solo los usuarios autenticados pueden ser víctimas. Este XSS específicamente apunta a usuarios SIN capacidades de edición. Tu audiencia pública, los visitantes que llegan desde buscadores, son el objetivo de ejecución. No es un ataque que se queda adentro del panel.

Preguntas Frecuentes

¿Qué es la vulnerabilidad CVE-2026-9104?

CVE-2026-9104 es una falla de XSS almacenado en el plugin Draft List para WordPress, en versiones hasta 2.6.3. Permite que un usuario con rol de autor inyecte código JavaScript en el título de un borrador, que luego se ejecuta en los navegadores de visitantes sin permisos de edición. La corrección está en la versión 2.6.4. Ya lo cubrimos antes en proteger WordPress contra ataques DDoS.

¿Cómo actualizar el plugin Draft List a una versión segura?

Desde el panel de WordPress, andá a Plugins > Plugins instalados y buscá Draft List. Si hay actualización disponible, hacé click en «Actualizar ahora». Verificá que la versión resultante sea 2.6.4 o superior. Si la actualización automática falla, descargá la versión nueva desde el repositorio oficial y subila manualmente.

¿Quién está afectado por CVE-2026-9104?

Todos los sitios WordPress con Draft List versión 2.6.3 o inferior instalado y activo. Los usuarios que pueden inyectar el payload son autores o roles superiores. Los que pueden ser víctimas son suscriptores y visitantes no autenticados, es decir, prácticamente cualquier persona que visite la página donde Draft List renderiza borradores.

¿Cuál es el riesgo real de este XSS en Draft List?

Con el puntaje CVSS 6.4 Medio, el impacto directo es limitado en confidencialidad e integridad, sin afectar disponibilidad. Pero el ataque no requiere interacción del usuario víctima y tiene alcance cambiado (puede afectar recursos fuera del plugin). En práctica, el riesgo más concreto es robo de sesiones de suscriptores o redirecciones maliciosas si alguien explota la falla.

¿Necesito desactivar Draft List por esta vulnerabilidad?

No es necesario desactivarlo si actualizás a 2.6.4 de inmediato. Si no podés actualizar en el corto plazo, desactivarlo es una medida temporal válida porque elimina el vector de ejecución en el front-end. Lo importante es no dejarlo activo en versión 2.6.3 o inferior por tiempo indefinido.

Conclusión

CVE-2026-9104 es un recordatorio de algo que pasa seguido en el ecosistema WordPress: plugins de funcionalidad específica y razonablemente inocua (mostrar una lista de borradores) esconden vectores de ataque porque el output no se escapa correctamente. No es un XSS especialmente sofisticado: el problema estaba en dos líneas de create-lists.php y la corrección probablemente también.

Si usás Draft List, actualizá a 2.6.4 ahora. Si no lo usás, no tenés este problema puntual, aunque siempre vale la pena revisar qué plugins tenés activos y en qué versión están. Con Wordfence activo, el scanner debería haberte alertado de esta falla si tenés el plan que incluye actualizaciones de reglas en tiempo real.

El puntaje Medio no significa ignorarlo. Significa que no es una emergencia de las que te sacan de la cama a las 3am, pero sí algo que resolvés en los próximos 30 minutos.

Fuentes

Categorizado en: