Nueva vulnerabilidad en WordPress
WordPress ha lanzado parches para una serie de vulnerabilidades en su software, destacando una que permite a un enlace web malicioso, abierto por un administrador autenticado, instalar un tema del directorio oficial de WordPress.org sin que nadie haga clic en el botón de instalación. Esta amenaza ha sido denominada Click2Shell por la firma de seguridad pwn.ai, cuyos investigadores reportaron la falla.
La vulnerabilidad, en sí, solo permite la instalación de un tema legítimo seleccionado por el atacante. Sin embargo, el equipo de investigación demostró que se puede combinar con una debilidad adicional en un tema para ejecutar código malicioso en el servidor. El parche fue publicado el 17 de septiembre en la versión 7.1.1 de WordPress. Dado que se trata de una actualización de seguridad, se recomienda actualizar de inmediato.
Hasta el momento, no se ha registrado el uso de esta vulnerabilidad en ataques reales. Es importante mencionar que el tema instalado permanece desactivado, por lo que la apariencia del sitio no sufre cambios inmediatos. Para que se produzca la ejecución de código, se requiere una segunda vulnerabilidad en el tema instalado. Según pwn.ai, "el error en el núcleo no acepta un archivo ZIP de tema arbitrario por sí mismo".
Mecanismo de ataque
La vulnerabilidad se explota debido a que dos componentes de WordPress interpretan el mismo enlace de manera diferente. El directorio de WordPress.org considera el valor del enlace como un nombre de tema ordinario y devuelve un tema real, mientras que el navegador del administrador reutiliza el texto original, incluidos los signos de puntuación, dentro del código destinado a seleccionar un elemento en la página. Los caracteres añadidos por el atacante en el enlace envían ese código al botón de instalación, que es activado por el propio script de WordPress.
Como el administrador ya ha iniciado sesión, su sesión proporciona los permisos y el token de seguridad necesarios para la instalación, por lo que el atacante no necesita suministrar ninguno de estos elementos.
Los temas instalados no siempre permanecen inactivos. Cuando WordPress genera una vista previa en su herramienta Customizer, puede cargar el código PHP de un tema incluso antes de que este sea activado. El tema utilizado por pwn.ai, Mobile Repair Zone, contenía una segunda vulnerabilidad: un manejador de fondo que recuperaba una dirección web de la solicitud, descargaba un paquete y ejecutaba su código sin verificar los permisos del visitante o un token de seguridad. Al encadenarse tras la instalación forzada, este manejador ejecutó el código del atacante en el servidor.
Clasificación de la vulnerabilidad
Los investigadores han calificado la vulnerabilidad de instalación forzada como de alta severidad, con un puntaje CVSS de 7.1, mientras que la cadena completa que permite la ejecución de código ha sido clasificada como crítica, con un puntaje de 9.6. WordPress no ha publicado su propia clasificación de severidad, pero en su comunicado describió el problema como: "URLs especialmente diseñadas pueden instalar y previsualizar automáticamente un tema inactivo desde WordPress.org".
Por el momento, no se ha asignado un identificador CVE, aunque pwn.ai ha indicado que WordPress planea añadir uno. La falla ha sido corregida en la versión 7.1.1, formando parte de una actualización de seguridad cuyas correcciones llegan a las ramas soportadas desde la versión 4.7.
Los propietarios de sitios deben instalar la versión 7.1.1 o la actualización correspondiente según la rama que utilicen. Los sitios configurados para actualizarse automáticamente recibirán esta actualización sin intervención. Si no es posible actualizar de inmediato, es relevante tener en cuenta que ni WordPress ni pwn.ai han ofrecido una solución alternativa, y que el ataque aún requiere que un administrador autenticado abra el enlace del atacante. Actualizar el núcleo de WordPress cierra el ataque demostrado, sin importar qué tema esté utilizando el sitio.
Click2Shell no es la primera vulnerabilidad en el núcleo de WordPress detectada por pwn.ai en las últimas semanas. En agosto, WordPress corrigió un error similar en la pantalla de inicio de sesión que también podía encadenarse para ejecutar código. En esa ocasión, WordPress describió el riesgo de manera más restringida que los investigadores. Una falla diferente en el núcleo de WordPress, conocida como wp2shell, no está relacionada con el trabajo de pwn.ai. Esta última no requiere inicio de sesión ni interacción, y la agencia de ciberseguridad de EE. UU., CISA, la ha listado como explotada en ataques reales, a diferencia de Click2Shell.