El 22 de septiembre de 2026, WordPress publicó una actualización de emergencia 7.1.2, que corrige la vulnerabilidad crítica CVE-2026-87902 (CVSS 9.2) en el núcleo de la plataforma. La vulnerabilidad permite que un atacante no autenticado obligue a WordPress a incluir un archivo PHP local arbitrario fuera de los directorios del tema activo. Si se cumplen condiciones adicionales en el lado del servidor y del tema, esto puede conducir a una ejecución remota de código (RCE). Se ven afectadas todas las versiones desde la 4.7.0 hasta la 7.1.1: los administradores de sitios en WordPress deben actualizar de inmediato.
Esencia técnica de la vulnerabilidad
La vulnerabilidad está clasificada como CWE-98, es decir, control incorrecto del nombre de archivo en una operación de inclusión de PHP. El problema reside en la función get_page_template(), responsable de seleccionar el archivo de plantilla de página. Una parte del nombre de archivo se genera a partir de un componente de la URL y, en las versiones vulnerables, WordPress no aplicaba a este valor una comprobación frente al salto de directorios (path traversal mediante ../), aunque el código adyacente sí utilizaba ya dicha comprobación.
Dado que el nombre del archivo se construye según la plantilla page-{valor}.php, para que la explotación tenga éxito es necesario que se cumplan dos precondiciones, indicadas en el aviso de seguridad oficial:
- El tema activo (principal o secundario) contiene un directorio de nivel superior cuyo nombre empieza por
page-(por ejemplo,page-templates). Esta condición se cumple en los temas estándar obsoletos Twenty Twelve y Twenty Fourteen, así como en una serie de temas de terceros populares, como Neve, Hestia y Sydney. - En el servidor existe un archivo PHP de destino legible que el servidor web pueda incluir.
Es importante entender la estructura de impacto en dos niveles. La mera inclusión de un archivo local (LFI) es el primer nivel: el atacante puede obligar a WordPress a cargar un archivo PHP que ya está presente en el servidor. El segundo nivel —el paso de LFI a un RCE completo— requiere condiciones adicionales. Según el aviso de seguridad, una de las rutas conocidas hacia RCE utiliza el archivo pearcmd.php del paquete PEAR y depende del ajuste de PHP register_argc_argv, que está activado por defecto en versiones antiguas de PHP, pero desactivado a partir de PHP 8.5. La ausencia de pearcmd.php o la desactivación de register_argc_argv bloquean este camino concreto hacia RCE, pero no eliminan la vulnerabilidad básica de inclusión de archivos.
Versiones afectadas y correcciones
La vulnerabilidad afecta a todas las ramas de WordPress desde la 4.7.0 hasta la 7.1.1 inclusive. Esto significa que incluso los sitios que se actualizaron a la versión 7.1.1 (publicada el 17 de septiembre) siguen siendo vulnerables: CVE-2026-87902 constituye un problema distinto de los que se corrigieron en ese lanzamiento.
La corrección está disponible en WordPress 7.1.2 y también se ha retroportado a todas las ramas compatibles hasta la 4.7.37. La lista completa de versiones corregidas por rama se ha publicado en las notas de la versión.
Estado de explotación: disparidad en los datos
La situación en torno al estado de explotación no es unívoca. Las primeras publicaciones afirmaban que, a fecha de 22 de septiembre, no existían ni un exploit PoC público ni indicios de uso de la vulnerabilidad en ataques. Sin embargo, el repositorio público del investigador Robert Ressl (Robert Ressl), que descubrió la vulnerabilidad, contiene código PoC con una nota de verificación en condiciones de laboratorio precisamente el 22 de septiembre, el mismo día en que se publicó el parche. El propio repositorio aclara expresamente que el PoC reproduce una configuración concreta y no pretende evaluar la prevalencia de instalaciones vulnerables.
En cuanto a los informes sobre una explotación activa en condiciones reales, se basan en la telemetría de empresas externas y no están confirmados por fuentes primarias independientes. En el momento de preparar este material, la vulnerabilidad no se ha incluido en el catálogo CISA Known Exploited Vulnerabilities. No obstante, la existencia de un PoC público y la relativa sencillez de explotación (no se requiere autenticación) convierten la actualización rápida en algo de importancia crítica.
Anteriormente ya analizamos un problema similar en el ecosistema de WordPress: la instalación forzada de temas mediante un enlace, donde el vector de ataque también estaba relacionado con la manipulación de componentes de temas.
Evaluación del impacto
La magnitud del impacto potencial viene determinada por dos factores. Por un lado, WordPress es el CMS más extendido del mundo y la vulnerabilidad afecta a versiones de varios años. Por otro, la explotabilidad práctica está limitada por un conjunto de precondiciones: no todos los temas contienen un directorio page-*, no en todos los servidores existe un archivo PHP adecuado para ser incluido y no toda configuración de PHP permite la transición a RCE.
Están especialmente expuestos los sitios que utilizan temas estándar antiguos de WordPress o temas de terceros populares con un directorio page-templates, que funcionan en servidores con versiones obsoletas de PHP (donde register_argc_argv está activado por defecto) y que tienen instalado PEAR.
Recomendaciones
WordPress recomienda una actualización inmediata y no ofrece medidas alternativas de mitigación: la actualización es la única corrección. Pasos concretos:
- Actualice WordPress a la versión 7.1.2 (o a la versión corregida correspondiente de su rama: 7.0.6, 6.9.9, 6.8.10, etc.) desde el panel de control (Actualizaciones → Actualizar ahora) o descargando la versión desde WordPress.org. Los sitios con actualizaciones automáticas en segundo plano activadas recibirán el parche automáticamente.
- Compruebe el tema activo para ver si contiene un directorio de nivel superior cuyo nombre empiece por
page-. Esto no es una corrección, pero sí un indicador del grado de exposición. - Revise el ajuste
register_argc_argven la configuración de PHP. Si está activado, es un factor de riesgo adicional para el paso de LFI a RCE. - Realice una auditoría en busca de indicios de actividad sospechosa, en particular peticiones atípicas a las plantillas de página e intentos de salto de directorios en las URL.
La vulnerabilidad CVE-2026-87902 combina la ausencia de requisitos de autenticación con un amplio rango de versiones afectadas y la existencia de un PoC público. Incluso con una explotabilidad condicionada, la única acción realmente fiable es actualizar a WordPress 7.1.2 o a la versión corregida correspondiente de su rama, y hacerlo en cuestión de horas, no de días.