Se publicaron detalles técnicos y un código de prueba de concepto para una nueva vulnerabilidad en el núcleo de WordPress, a la que los investigadores llamaron Click2Shell, que permite una cadena de explotación para ejecutar código PHP de forma remota en el servidor y sin autenticación directa del atacante. WordPress corrigió el fallo en la versión 7.1.1, publicada la semana pasada, pero la publicación del exploit de prueba hace aún más urgente actualizar los sitios afectados.
¿Cómo funciona la cadena?
El investigador Paulos Yibelo, de la plataforma de pruebas de penetración pwn.ai, descubrió la vulnerabilidad y la notificó a WordPress el 22 de agosto. Según el informe, un valor tomado de un enlace de vista previa de un tema se interpreta una vez mediante la API de Themes en WordPress.org y después es procesado de forma insegura por JavaScript en el navegador del administrador.
Esto permite añadir al sitio un tema del directorio oficial sin que el administrador lo instale explícitamente. Incluso si el tema no está activo, el código PHP que contiene puede ejecutarse durante su vista previa en la herramienta Customizer. Para completar el ataque, el atacante envía un enlace especialmente preparado, pero un administrador con sesión iniciada en el sitio debe visitarlo.
¿Qué puede ocurrir después de la explotación?
Los investigadores utilizaron un tema vulnerable como segunda parte de la cadena para ejecutar código PHP definido por el atacante. El informe completo señala que es posible ejecutar comandos en el servidor, incluida la modificación o eliminación de archivos, así como acceder a los datos de los usuarios y al archivo wp-config.php, que contiene las credenciales de la base de datos y secretos de autenticación.
Esto puede permitir crear cuentas de administrador maliciosas o inyectar scripts dañinos en el sitio. Asimismo, el fallo principal de WordPress Core 7.1.0 y versiones anteriores puede utilizarse, según el investigador, para obligar al sitio a instalar cualquier otro tema vulnerable disponible en el directorio de WordPress.org.
¿Quién tiene los permisos necesarios?
El atacante no necesita una cuenta de WordPress ni un nonce para la instalación, ni permisos administrativos propios especiales. Sin embargo, la cadena Click2Shell no funciona simplemente enviando la solicitud; es necesaria la interacción de un administrador con sesión iniciada con el enlace. La empresa de seguridad de WordPress Patchstack indicó que las cuentas Author y Editor no tienen los permisos necesarios para instalar temas.
El enlace puede llegar al administrador mediante phishing dirigido o a través de una vulnerabilidad XSS existente que haga que su navegador envíe la solicitud. Por tanto, el requisito de interacción del administrador no elimina la gravedad del fallo, pero delimita el escenario de ataque y significa que no se trata de una explotación remota completamente automatizada.
¿Qué cambia en la práctica?
WordPress solucionó el problema escapando el nombre del tema antes de utilizarlo en un selector de jQuery y limitando el selector a las tarjetas de temas reales. Patchstack recomienda actualizar a la versión 7.1.1 o posterior, especialmente tras la publicación de los detalles completos y del código de prueba de concepto.
En los sitios que no puedan actualizarse de inmediato, Patchstack indica que activar la configuración DISALLOW_FILE_MODS impide obligar al sitio a instalar el tema o un complemento malicioso. Sigue siendo una medida de mitigación temporal, no un sustituto de actualizar el núcleo de WordPress y revisar cualquier cambio o cuenta administrativa inesperada.