En pocas palabras: Sí: el CVE-2026-104368 (CVSS 8.8) permite que un Suscriptor explote un desajuste de escape entre exportación e importación CSV en Export and Import Users and Customers de WebToffee, hasta la versión 2.7.5, para crear una cuenta de Administrador.
El CVE-2026-104368 es una vulnerabilidad de escalamiento de privilegios con CVSS 8.8 en el plugin Export and Import Users and Customers de WebToffee, hasta la versión 2.7.5. Un atacante autenticado como Suscriptor puede crear una cuenta de Administrador explotando un desajuste de escape en el ciclo de exportación e importación CSV del plugin.
Export and Import Users and Customers es un plugin de WebToffee para WordPress y WooCommerce que permite exportar e importar usuarios, clientes y sus metadatos en formato CSV. Lo usan tiendas que migran bases de clientes o sincronizan roles entre sitios. El CVE-2026-104368 afecta el mecanismo interno de lectura y escritura de esos archivos CSV, no una funcionalidad visible de la tienda.
En este artículo:
- En 30 segundos
- ¿Qué puntaje de severidad tiene el CVE-2026-104368 y quién lo reportó?
- ¿Cómo se produce el desajuste de caracteres de escape entre exportación e importación CSV?
- ¿Cómo se crea una cuenta de administrador a partir de una fila CSV inyectada?
- ¿Qué impacto real tiene sobre la confidencialidad, integridad y disponibilidad del sitio?
- ¿Esta vulnerabilidad ya fue explotada en sitios WordPress reales?
- ¿Qué está confirmado y qué sigue pendiente sobre el CVE-2026-104368?
- ¿Cómo protejo un sitio WordPress con este plugin instalado hoy mismo?
- Errores comunes al reaccionar frente a este tipo de vulnerabilidad
- Preguntas Frecuentes
- Conclusión
- Fuentes
En 30 segundos
- CVSS 3.1 de 8.8 (High), asignado por Wordfence como CNA, con reserva el 1 de octubre de 2026 y publicación el 30 de octubre de 2026.
- Afecta todas las versiones <=2.7.5 del plugin de WebToffee; el campo «Fixed in» aparecía vacío al momento de la publicación del CVE.
- La causa es un desajuste entre fputcsv() (escape con barra invertida) en la exportación y fgetcsv() (escape con comilla doble) en la importación.
- Un Suscriptor puede inyectar una fila CSV falsa desde el campo «Biographical Info» que termina creando una cuenta de Administrador.
- Estado «Not known to be exploited»: sin CVE en CISA KEV, sin módulo en Metasploit/Exploit-DB y sin tráfico detectado por los sensores de OffSeq Mirage al 30 de octubre de 2026.
¿Qué puntaje de severidad tiene el CVE-2026-104368 y quién lo reportó?
El CVE-2026-104368 tiene un puntaje CVSS 3.1 de 8.8, clasificado como High, con el vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Wordfence actúa como CNA (CVE Numbering Authority) y reservó el identificador el 1 de octubre de 2026; la publicación formal llegó el 30 de octubre de 2026, según el registro de Threat Radar de OffSeq.
El EPSS (Exploit Prediction Scoring System) ubica la probabilidad de explotación en 30 días en 0.3%, un número bajo en términos absolutos pero superior al 28% del resto de los CVEs registrados, según la misma fuente. Ojo: que el EPSS sea bajo no significa que el riesgo lo sea. El puntaje de severidad describe el daño posible si alguien lo explota; el EPSS describe la chance de que lo haga pronto en base a patrones históricos. Son dos preguntas distintas, y acá conviene no mezclarlas.
¿Cómo se produce el desajuste de caracteres de escape entre exportación e importación CSV?
El problema nace porque el plugin escribe y lee sus propios archivos CSV con dos reglas de escape distintas. class-csvwriter.php genera el export con fputcsv(), que por defecto en PHP usa la barra invertida (\) como carácter de escape. class-csvreader.php, en cambio, lee ese mismo archivo con fgetcsv() configurado para usar la comilla doble («) como escape. Ninguna de las dos funciones se enteró de que la otra pensaba distinto. Esto se conecta con lo que analizamos en los CVEs críticos en plugins durante 2026.
Pensalo así: guardás un archivo asumiendo una regla y quien lo abre después asume otra completamente distinta sin que nadie avise del cambio. Todo lo que venga después del primer punto de discrepancia queda mal interpretado, y en este caso la discrepancia vive en un campo de texto que cualquier Suscriptor puede editar desde su propio perfil, porque «Biographical Info» es parte del formulario estándar de usuario de WordPress.
Si ese campo contiene una secuencia de barra invertida más comilla doble seguida de un salto de línea, fputcsv() la escribe como un único campo entre comillas, tal como corresponde según sus propias reglas. El tema es que fgetcsv(), al leer ese mismo valor con la comilla doble como escape, interpreta el salto de línea como el final de una fila y arranca una fila nueva donde no debería haber ninguna. Ahí nace el registro fantasma.
¿Cómo se crea una cuenta de administrador a partir de una fila CSV inyectada?
La fila extra generada por el error de parseo no se descarta: el importador la trata como un registro de usuario legítimo y la pasa a la función hf_create_customer(), que acepta user_login, user_pass, user_email y role directamente desde el CSV sin validar permisos adicionales. Si el atacante armó esa fila con role=administrator, el plugin crea una cuenta de Administrador nueva con la contraseña y el email que el atacante eligió.
¿Y qué controles frenan esto? Ninguno, según la descripción técnica de la fuente. No hay verificación de que quien importa tenga permiso para asignar el rol Administrator, ni revisión de que los datos de la fila provengan del export original del sitio. hf_create_customer() confía en lo que dice el CSV, punto. Complementá con reforzar la seguridad de tus plugins de formularios.
El CWE que describe la falla es CWE-116 (Improper Encoding or Escaping of Output), y la clasificación asociada estima la probabilidad de explotación de ese tipo de debilidad como High, dentro de la categoría A05:2025 (Injection) del OWASP Top 10. No es una falla exótica: es un clásico de «dos componentes que no se pusieron de acuerdo sobre el formato de los datos».
¿Qué impacto real tiene sobre la confidencialidad, integridad y disponibilidad del sitio?
El vector CVSS marca C:H/I:H/A:H, es decir pérdida total en las tres dimensiones: confidencialidad, integridad y disponibilidad. Con una cuenta de Administrador creada a voluntad, un atacante lee cualquier dato de la base, modifica contenido, usuarios y configuración, y puede desactivar plugins o directamente dejar el sitio inaccesible.
Pensalo en un e-commerce con WooCommerce: el atacante arranca con permisos de Suscriptor, sube una Biographical Info manipulada, espera a que alguien con rol Administrator corra una exportación y una reimportación (algo rutinario en migraciones o sincronizaciones periódicas), y de un momento a otro tiene una cuenta propia con control total, desde la cual exporta la base completa de clientes, cambia precios, redirige pagos a otra cuenta o instala un plugin con backdoor para quedarse ahí aunque alguien detecte y borre la cuenta sospechosa. Toda la superficie de un Administrador legítimo queda disponible para alguien que arrancó en el rol más bajo que WordPress deja autogestionar.
¿Esta vulnerabilidad ya fue explotada en sitios WordPress reales?
No, según la evidencia disponible al 30 de octubre de 2026. Threat Radar de OffSeq marca el estado como «Not known to be exploited»: el CVE no figura en el catálogo CISA KEV, no hay módulo público en Metasploit ni entrada en Exploit-DB, no existe plantilla de nuclei indexada y los sensores honeypot de OffSeq Mirage no registraron tráfico de ataque asociado a esta referencia.
¿Significa que estás a salvo? No necesariamente.
La ausencia de explotación reportada no es garantía de nada. Un CVSS de 8.8 con complejidad de ataque baja y sin necesidad de interacción del usuario es, en la jerga del rubro, un blanco fácil apenas alguien se tome el tiempo de automatizarlo (spoiler: suele pasar más rápido de lo que uno espera). Que todavía no haya un módulo de Metasploit no quiere decir que no vaya a aparecer la semana que viene. Te puede servir nuestra cobertura de configurar autenticación en dos pasos en WordPress.
¿Qué está confirmado y qué sigue pendiente sobre el CVE-2026-104368?
Lo confirmado por las fuentes consultadas es la severidad, la causa técnica y el estado de explotación; lo pendiente es, sobre todo, la versión corregida oficial. Acá el detalle completo:
| Aspecto | Estado |
|---|---|
| CVSS 3.1 | 8.8 (High) — confirmado |
| CNA asignador | Wordfence — confirmado |
| Fecha de reserva | 1 de octubre de 2026 — confirmado |
| Fecha de publicación | 30 de octubre de 2026 — confirmado |
| Versión afectada | <=2.7.5 — confirmado |
| Versión corregida | No especificada («Fixed in: –») — pendiente |
| Explotación en el mundo real | No conocida al 30/10/2026 — confirmado por ausencia de evidencia |

Hay un changeset público (3741112) en el repositorio oficial del plugin en plugins.trac.wordpress.org, pero nada en las fuentes consultadas confirma de forma explícita que ese cambio corresponda a la versión definitiva con el fix ya liberado al público. Tomalo con pinzas hasta que WebToffee publique un changelog que lo diga sin ambigüedad.
¿Cómo protejo un sitio WordPress con este plugin instalado hoy mismo?
Mientras no haya una versión corregida confirmada, la mitigación pasa por restringir accesos y auditar cuentas, no por esperar sentado. Esto es lo que conviene revisar ahora mismo:
- Restringí el acceso al módulo de exportación e importación: dejalo visible solo para roles Administrator, no para Editor ni Shop Manager.
- Revisá las cuentas Administrator creadas recientemente: un usuario nuevo con email o patrón de login que no reconocés es la primera señal de compromiso.
- Desactivá la reimportación de CSV si no la usás a diario: la mayoría de las tiendas exportan mucho más de lo que reimportan, así que el riesgo real está concentrado en pocas operaciones.
- Monitoreá el changeset 3741112 y los anuncios de WebToffee: hasta que no haya un número de versión confirmado como corregido, cualquier CSV que no generaste vos mismo es territorio sospechoso.
- Reforzá los permisos a nivel de servidor si administrás el hosting: en infraestructuras bien configuradas se pueden sumar reglas de acceso al panel de administración que no dependen únicamente de lo que haga (o deje de hacer) un plugin.
Errores comunes al reaccionar frente a este tipo de vulnerabilidad
Hay patrones que se repiten cada vez que aparece un CVE de escalamiento de privilegios, y vale la pena nombrarlos antes de que los cometas vos también. Ampliamos el tema en otra falla de autorización expuesta en Kubeflow.
- Pensar que «solo afecta a Suscriptores» es poco riesgo: Suscriptor es el rol que cualquiera obtiene con un registro abierto en el sitio; es el punto de entrada, no el techo del problema.
- Esperar el parche sin restringir nada mientras tanto: con «Fixed in» vacío, la restricción manual del acceso a export/import es la única mitigación real disponible hoy.
- Confundir «no está en CISA KEV» con «no es explotable»: CISA KEV lista explotación confirmada en el mundo real, no vulnerabilidades teóricas; un CVSS 8.8 con AC:L es explotable igual, aunque todavía no haya reportes públicos.
- Borrar el plugin sin auditar usuarios antes: desinstalar no revierte una cuenta Administrator ya creada por un atacante; hay que revisar la lista de usuarios primero.
Preguntas Frecuentes
¿Qué es el CVE-2026-104368?
Es una vulnerabilidad de escalamiento de privilegios con CVSS 8.8 en el plugin Export and Import Users and Customers de WebToffee para WordPress. Permite que un usuario autenticado con rol Suscriptor cree una cuenta de Administrador aprovechando un error en el manejo de caracteres de escape durante la exportación e importación de archivos CSV. Ya lo cubrimos antes en el RCE crítico detectado en WooCommerce 9.0.
¿Qué versiones de Export and Import Users and Customers están afectadas?
Todas las versiones hasta la 2.7.5 inclusive están afectadas. Al momento de la publicación del CVE, el 30 de octubre de 2026, el campo «Fixed in» del registro de la vulnerabilidad figuraba vacío. Más sobre esto en la fuga de memoria detectada en Vercel.
¿Cómo explota un atacante esta vulnerabilidad sin ser administrador?
El atacante inserta en su propio campo «Biographical Info» una secuencia de barra invertida, comilla doble y salto de línea. Cuando un Administrador exporta usuarios y vuelve a importar ese CSV, el desajuste entre las funciones de escritura y lectura genera una fila extra que el plugin procesa como una cuenta nueva con rol Administrator controlado por el atacante.
¿Hay un parche disponible para esta vulnerabilidad?
No hay confirmación oficial de una versión corregida al momento de la publicación del CVE. Existe un changeset (3741112) en el repositorio público del plugin, pero las fuentes consultadas no confirman de forma explícita que corresponda al fix definitivo ya liberado.
¿Esta vulnerabilidad ya fue explotada en sitios reales?
No hay evidencia de explotación activa al 30 de octubre de 2026. El CVE no aparece en el catálogo CISA KEV, no tiene módulo público en Metasploit o Exploit-DB y los sensores honeypot de OffSeq Mirage no detectaron tráfico de ataque asociado.
Conclusión
El CVE-2026-104368 muestra algo que se repite más de lo que debería en plugins de WordPress: dos funciones del mismo componente, escritas por el mismo equipo, que terminan hablando idiomas distintos sin que nadie lo note hasta que alguien lo explota. Acá el costo de ese descuido es alto, un Suscriptor puede terminar siendo Administrador sin que nadie apruebe nada en el medio.
Si tenés este plugin instalado, la decisión concreta hoy es restringir quién puede exportar e importar usuarios y auditar las cuentas Administrator existentes, no esperar a que aparezca un número de versión en el changelog. Lo que las fuentes no permiten concluir es si WebToffee ya lanzó o va a lanzar en los próximos días una versión corregida: eso hay que seguirlo directamente en el repositorio oficial del plugin.