Guía de despliegue

WordPress CVE-2026-87902: actualiza a 7.1.2 urgente

Desplegar en un VPS Cloud →

Tutorial

WordPress CVE-2026-87902: actualiza a 7.1.2 urgente

Seguridad y monitorización8 min de lectura18 pasos

El 22 de septiembre de 2026, el equipo de WordPress publicó la versión 7.1.2 para corregir CVE-2026-87902, una vulnerabilidad de inclusión de archivos locales (LFI) no autenticada que puede derivar en ejecución remota de código (RCE) bajo ciertas condiciones. La puntuación CVSS 4.0 es de 9.2 sobre 10. Menos de cinco horas después de publicar el parche, Patchstack registró las primeras solicitudes maliciosas a las 17:44 UTC. Todas las instalaciones de WordPress entre la versión 4.7.0 y la 7.1.1 están afectadas — casi una década de versiones. Este artículo explica cómo verificar tu exposición, aplicar el parche en menos de dos minutos y por qué el hosting compartido te deja expuesto más tiempo que un VPS.

CVE-2026-87902 en resumen — qué está pasando ahora mismo

La vulnerabilidad reside en la función get_page_template(), que construye el nombre del archivo de plantilla a partir del parámetro pagename de la petición HTTP sin validarlo correctamente. Un atacante no autenticado puede inyectar secuencias de directory traversal doblemente codificadas para forzar a WordPress a incluir cualquier archivo PHP legible en el servidor, fuera de los directorios de tema permitidos.

La falla se clasifica como LFI condicional hacia RCE: la ejecución de código no está garantizada en cada instalación, pero las condiciones requeridas son muy comunes. Patchstack observó en las primeras horas de explotación cargas que usan pearcmd.php — presente por defecto en imágenes Docker oficiales y entornos cPanel con PHP < 8.5 — para escribir archivos PHP ejecutables en /tmp o /var/tmp. La puntuación CVSS 4.0 de 9.2 refleja la ausencia total de autenticación requerida y el impacto potencial sobre la confidencialidad, integridad y disponibilidad del servidor.

  • Incluir un archivo PHP arbitrario legible fuera del directorio del tema activo mediante directory traversal en el parámetro pagename
  • Usar pearcmd.php (presente en cPanel/PHP < 8.5 e imágenes Docker oficiales) para escribir un archivo PHP controlado por el atacante en el disco
  • Depositar un webshell en /tmp o /var/tmp con un nombre genérico (wp-pear-rce-flag.php, poc87902.php)
  • Ejecutar comandos shell en el servidor sin ninguna cuenta de WordPress ni interacción del usuario
  • Pivotar hacia otros sitios alojados en el mismo servidor si los permisos lo permiten
  • Exfiltrar datos de base de datos, claves API o archivos .env legibles

Verificar si tus sitios están expuestos

El primer paso es conocer la versión de WordPress de cada instalación. Con WP-CLI, el comando es directo y se ejecuta en segundos, incluso en un parque de varias decenas de sitios.

  1. Verificar la versión actual y las actualizaciones disponibles: wp core version; wp core check-update

  2. Listar todas las instalaciones de WordPress en un servidor cPanel: find /home -name 'wp-config.php' -not -path '*/wp-content/*' 2>/dev/null

  3. Verificar la versión de cada instalación encontrada: wp --path=/home/user/public_html core version

  4. Comprobar si el tema activo contiene un directorio que empiece por page- (condición de explotación): ls $(wp --path=/home/user/public_html eval 'echo get_stylesheet_directory();') | grep '^page-'

  5. Verificar si register_argc_argv está habilitado (segunda condición de explotación): php -r 'echo ini_get("register_argc_argv") ? "EXPOSED" : "OK";'

  6. Buscar trazas de explotación en logs de acceso (patrón característico): grep -E 'pagename=.*\.\..*page_id=' /var/log/nginx/access.log

Una instalación está expuesta a RCE si cumple las tres condiciones: versión entre 4.7.0 y 7.1.1, tema activo con directorio page-* en la raíz, y register_argc_argv habilitado. El LFI solo (sin RCE) es posible con las dos primeras condiciones aunque register_argc_argv esté desactivado. Los temas más citados por los investigadores son Twenty Twelve, Twenty Fourteen, Neve, Hestia y Sydney.

Hacer copia de seguridad antes de parchear

Antes de cualquier actualización del core de WordPress, una copia de seguridad es imprescindible. En un VPS, el método más fiable es el snapshot de VM — captura el estado completo del disco en segundos y permite un rollback inmediato. En paralelo, exportar la base de datos con WP-CLI garantiza una restauración precisa.

  1. Crear un snapshot de la VM desde el panel VPS (operación instantánea, rollback en < 2 min) o desde la API si lo automatizas:
    pvesh create /nodes/{node}/qemu/{vmid}/snapshot --snapname pre-wp712

  2. Exportar la base de datos de WordPress con WP-CLI (flag --add-drop-table para una restauración limpia):
    wp db export backup-pre-712.sql --add-drop-table

  3. Verificar la integridad del dump antes de proceder:
    wp db check

  4. Copiar el dump fuera del servidor (almacenamiento externo o local):
    rsync -avz user@servidor:/home/user/public_html/backup-pre-712.sql ./

Aplicar WordPress 7.1.2 — los pasos

En un VPS con acceso root, la actualización de WordPress se realiza vía WP-CLI sin intervención del proveedor. El proceso completo — incluyendo copia de seguridad — tarda menos de tres minutos. WordPress 7.1.2 fue publicado el 22 de septiembre de 2026; los parches también han sido retroportados a todas las ramas mantenidas hasta la versión 4.7.

  1. Activar el modo mantenimiento: wp maintenance-mode activate

  2. Actualizar el core de WordPress a 7.1.2: wp core update

  3. Verificar que la actualización se aplicó correctamente: wp core version; # Debe retornar: 7.1.2

  4. Actualizar la base de datos si es necesario: wp core update-db

  5. Limpiar la caché: wp cache flush

  6. Desactivar el modo mantenimiento: wp maintenance-mode deactivate

  7. Verificar logs y probar una página clave: curl -sI https://tu-sitio.com/ | grep HTTP

  8. Para actualizar varios sitios en bucle: for dir in $(find /home -name 'wp-config.php' -not -path '*/wp-content/*' -exec dirname {} \;); do; wp --path="$dir" core update; done

Por qué el hosting compartido te expone más tiempo

En el hosting compartido, el proveedor controla el calendario de actualizaciones de WordPress. La ventana entre la publicación del parche y su aplicación efectiva depende del cronograma del proveedor, la carga de sus servidores y sus propias pruebas de regresión. En el caso de CVE-2026-87902, la explotación activa comenzó menos de cinco horas después de publicar el parche — un plazo muy inferior al ciclo de actualización de la mayoría de los hostings compartidos.

Desplace la tabla

CriterioCompartido (cPanel/Plesk)VPS root ServOrbit
Tiempo de parche tras publicaciónHosting compartido: 12 a 72 horas según proveedorVPS root: menos de 3 minutos con WP-CLI
Acceso a logs de accesoHosting compartido: limitado o inexistenteVPS root: acceso completo a /var/log en tiempo real
Control de `register_argc_argv`Hosting compartido: lo impone el proveedor, frecuentemente habilitadoVPS root: desactivable via `php.ini` en 30 segundos
Aislamiento de sitiosHosting compartido: mismo servidor que otros clientesVPS root: entorno dedicado, sin vecinos
Copia de seguridad previaHosting compartido: snapshot no disponible o de pagoVPS root: snapshot instantáneo vía API

El argumento «mi hosting actualiza automáticamente» ya no vale ante una explotación que empieza en J+0 en menos de cinco horas. Las primeras solicitudes maliciosas con CVE-2026-87902 se registraron el 22 de septiembre de 2026 a las 17:44 UTC — antes de que la mayoría de los hostings compartidos hubiera tenido tiempo de planificar y probar su despliegue.

Configuración recomendada post-parche: (1) Deshabilitar XML-RPC si no usas apps móviles de WordPress ni Jetpack: añade add_filter('xmlrpc_enabled', '__return_false'); en functions.php. (2) Forzar actualizaciones automáticas del core: define('WP_AUTO_UPDATE_CORE', 'minor'); en wp-config.php. (3) Deshabilitar register_argc_argv en php.ini para eliminar el vector RCE via pearcmd.php: register_argc_argv = Off. (4) Añadir una regla WAF para bloquear patrones de traversal en el parámetro pagename mientras el parche se propaga en instalaciones rezagadas.

Solución de problemas — errores comunes tras el parche

Las actualizaciones del core de WordPress suelen ser fluidas, pero ciertos entornos presentan problemas predecibles. Aquí los más frecuentes y su resolución.

  • Error de conexión a la base de datos tras la actualización: ejecuta wp core update-db — algunas migraciones de esquema no se aplican automáticamente con ciertos plugins de caché activos. Desactiva el caché antes de actualizar si experimentas este problema.
  • Pantalla blanca o error 500: revisa los logs de PHP y desactiva temporalmente todos los plugins: wp plugin deactivate --all.
  • Permiso denegado en wp-content/: ejecuta WP-CLI como el usuario propietario de los archivos: su - cpanelusername -c 'wp core update'.
  • 'Filesystem not available': añade define('FS_METHOD', 'direct'); en wp-config.php. Esta constante le indica a WordPress que escriba directamente en el sistema de archivos sin pasar por FTP ni SSH.
  • Tema hijo roto tras el parche: verifica la compatibilidad del tema padre con WordPress 7.1.2. Los temas que referenciaban directamente pearcmd.php en su código (caso muy raro) pueden generar reglas de acceso no deseadas después del parche.
  • Caché de objetos obsoleta (Redis/Memcached): tras wp cache flush, reinicia el servicio: systemctl restart redis.

De WordPress hacia una arquitectura más robusta

CVE-2026-87902 ilustra una realidad estructural: el core de WordPress es una superficie de ataque amplia, y cada falla crítica replantea la cuestión del control del entorno de ejecución. Un VPS dedicado no elimina las vulnerabilidades, pero reduce la ventana de exposición a minutos, permite auditar el entorno completamente y responder con precisión a cada vector de ataque documentado.

Para agencias y desarrolladores que gestionan un parque de sitios WordPress, consolidar en un VPS con WP-CLI instalado y scripts de actualización automatizados transforma una emergencia de seguridad en un procedimiento rutinario. El coste operativo de un VPS queda compensado por la eliminación del retardo del proveedor — que, como demuestra esta CVE, puede resultar decisivo.

Parchea en minutos, no en horas

En un VPS de ServOrbit, `wp core update` se ejecuta con acceso root directo — sin esperar que el proveedor aplique el parche. CVE-2026-87902 fue explotada en menos de cinco horas tras la publicación del fix. La diferencia entre expuesto y protegido se juega en el acceso a tu propio servidor.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva