febrero 10, 2026

800.000 sitios web en riesgo por carga arbitraria de archivos en WPvivid Backup & Migration (CVE-2026-1357)

Arbitrary File Upload Vulnerability in WPvivid Backup

800.000 sitios web en riesgo por carga arbitraria de archivos en WPvivid Backup & Migration (CVE-2026-1357)

Resumen ejecutivo

El 12 de enero de 2026, István Márton recibió el reporte responsable de una vulnerabilidad crítica de carga arbitraria de archivos que afecta al plugin WPvivid Backup (Arbitrary File Upload Vulnerability in WPvivid Backup), con más de 800.000 instalaciones activas en el ecosistema de WordPress. El fallo permite a atacantes no autenticados subir archivos arbitrarios y, en escenarios explotables, alcanzar ejecución remota de código (RCE), típicamente usada para toma total del sitio.

Nota importante: el impacto “crítico” se presenta principalmente en sitios donde se haya habilitado la función de WPvivid que permite que otro sitio envíe un backup al tuyo mediante una clave (key) generada. Esta función viene desactivada por defecto y la expiración de la clave, según el reporte, solo puede configurarse hasta un máximo de 24 horas.

Créditos y protección por firewall

El hallazgo fue atribuido a Lucas Montes (NiRoX), quien lo reportó a través del programa de bug bounty de Wordfence (recompensa: US$ 2.145). Wordfence indica que el reporte llegó solo 5 días después de que la vulnerabilidad se introdujera en el código.

En cuanto a mitigación defensiva, Wordfence desplegó una regla de firewall para sus planes Premium / Care / Response el 22 de enero de 2026. Para usuarios de la versión gratuita, la misma protección se liberaría 30 días después, el 21 de febrero de 2026.

Identificación de la vulnerabilidad

Según Wordfence Intelligence:

  • CVE: CVE-2026-1357
  • Severidad: CVSS 9.8 (Crítica) (vector CVSS 3.1 publicado por Wordfence)
  • Versiones afectadas: ≤ 0.9.123
  • Versión corregida: 0.9.124
  • Tipo: Unauthenticated Arbitrary File Upload (carga no autenticada de archivos)

En el directorio oficial del plugin, el changelog de 0.9.124 indica explícitamente que se “corrigió una vulnerabilidad en el código del plugin”.

Qué ocurre a nivel técnico (por qué se vuelve explotable)

WPvivid Backup incluye una funcionalidad para recibir un backup desde otro sitio. Para ello utiliza una clave temporal generada desde la configuración del plugin. En el flujo analizado por Wordfence, el endpoint que gestiona esa recepción procesa un contenido enviado por POST (por ejemplo, un parámetro tipo wpvivid_content) y deriva a un método de “encriptación/descrifrado” interno.

El problema central es una combinación de dos fallos:

Manejo incorrecto de errores en el descifrado RSA (session key):

  • Si el descifrado de la clave de sesión falla (p.ej., al intentar descifrar con RSA), el código no corta la ejecución como debería.
  • Ese fallo termina alimentando a una inicialización de cifrado simétrico (AES/Rijndael) con un valor booleano false.
  • La librería criptográfica (phpseclib, según el reporte) interpreta false como una cadena de bytes nulos, produciendo una clave predecible. Esto permite a un atacante construir un payload cifrado que el sistema pueda “aceptar” bajo esa condición anómala.
Arbitrary File Upload Vulnerability in WPvivid Backup
Arbitrary File Upload Vulnerability in WPvivid Backup

Falta de sanitización de ruta/nombre del archivo (path traversal):

  • Falta de sanitización de ruta/nombre del archivo (path traversal):
  • El plugin acepta nombres de archivo desde el contenido “descifrado” sin sanitización adecuada.
  • Esto habilita traversal para escapar del directorio de backups “protegido” y escribir archivos en ubicaciones accesibles públicamente.
Arbitrary File Upload Vulnerability in WPvivid Backup
Arbitrary File Upload Vulnerability in WPvivid Backup

Con ambas condiciones, un atacante no autenticado puede subir archivos arbitrarios (incluyendo PHP) hacia rutas publicables y lograr RCE. Wordfence menciona que esto se alcanzaría a través del parámetro wpvivid_action=send_to_site.

Como ocurre con la mayoría de cargas arbitrarias de archivos críticas, el escenario típico posterior es la instalación de webshells y técnicas asociadas a compromisos completos del sitio.

Alcance real del riesgo: ¿cuándo es crítico?

Aunque la vulnerabilidad sea crítica por severidad, Wordfence recalca que el “impacto crítico” se concentra en instalaciones donde el administrador haya generado/activado la clave para permitir recepciones de backups desde otro sitio (función deshabilitada por defecto), y con expiración máxima de 24 horas. Aun así, si esa función se utiliza operativamente (por ejemplo, migraciones entre entornos, automatizaciones o trabajo de agencias), el riesgo sube significativamente durante el periodo en el que la clave está activa.

El parche: qué cambió en 0.9.124

El proveedor liberó la corrección el 28 de enero de 2026. Wordfence destaca dos medidas clave:

  1. Validación dura del resultado del descifrado de la clave:
    • Se añadió una verificación para asegurar que la clave no sea false/vacía antes de seguir con la rutina de descifrado simétrico, evitando el “fallback” a una clave de bytes nulos predecible.
  2. Controles de tipo/extensión y saneamiento del nombre:
    • Se incorporó una validación para permitir únicamente extensiones de backup (ej.: zip, gz, tar, sql) y se sanea el nombre de archivo antes de escribirlo.

Recomendación directa: actualiza a 0.9.124 o superior.

Cronología de divulgación (disclosure timeline)

  • 12 ene 2026: recepción del reporte vía bug bounty.
  • 22 ene 2026: Wordfence valida y confirma PoC; contacta al proveedor e invita a usar su portal de gestión de divulgación.
  • 22 ene 2026: regla de firewall para clientes Premium/Care/Response.
  • 23 ene 2026: el proveedor responde y decide gestionar por email; recibe detalles completos y empieza el fix.
  • 28 ene 2026: lanzamiento de la versión 0.9.124 corregida.
  • 21 feb 2026: fecha indicada para que usuarios de Wordfence Free reciban la regla equivalente.

Qué recomendamos desde CLYGOS (acción inmediata)

  1. Actualizar ya WPvivid Backup & Migration a 0.9.124+.
  2. Si no usas “recibir backups desde otro sitio”, mantén esa función deshabilitada y evita generar claves innecesarias.
  3. Si tu operación sí requiere esa función:
    • Genera claves solo cuando sea necesario (ventana mínima de tiempo).
    • Revisa controles de acceso al panel, y reduce la exposición operativa durante migraciones.
  4. Endurecimiento defensivo: WAF, monitoreo de cambios en archivos, y alertas ante creación de .php en rutas anómalas (especialmente fuera de directorios esperados).

Conclusión

Esta vulnerabilidad (CVE-2026-1357) demuestra cómo errores encadenados —manejo de fallos criptográficos + falta de sanitización de rutas— pueden escalar rápidamente a RCE sin autenticación. Aunque la explotación crítica depende de una configuración específica (claves para recepción de backups), la mitigación es clara: actualizar a 0.9.124 o superior y minimizar el uso de esa función cuando no sea imprescindible.

Relacionados

Explora más sobre lo que te interesa. Conoce análisis, tendencias y consejos que complementan tu lectura y refuerzan tu seguridad digital.

Categorías

CLYGOS Logo