Soporte » Seguridad » CVE-2017-5487: REST API exposed user data for all users

  • Resuelto juanjoweb

    (@juanjoweb)


    Hola a todos,

    Vamos a sacar un entorno de WordPress 4.9.4 a Producción, pero nos han alertado de una vulnerabilidad sobre la exposición de información sensible de usuarios dentro del portal.
    Dicha vulnerabilidad “CVE-2017-5487” en teoría quedó resuelta en la versión 4.7.1 como he podido ver en internet “https://www.rapid7.com/db/vulnerabilities/wordpress-cve-2017-5487”. Sin embargo, en la versión 4.9.4 parece que no lo está.
    Accediendo a http://www.midomio.com/wp-json/wp/v2/users muestra información de usuarios y no certifican el portal para salir a producción.
    ¿Alguien puede orientarme de como debo corregir esta vulnerabilidad?

    Muchas gracias!

Viendo 4 respuestas - 1 de 4 (de 4 total)
  • La información que expone el endpoint wp-json/wp/v2/users no es información sensible, pero en algunos casos podría ser considerada privada, y ese era el problema que tenía.

    El problema que había antes de 4.7.1 es que exponía información de CUALQUIER usuario que tuviese un post público, INCLUSO cuando el post era de un tipo de post registrado para no ser expuesto en el REST API.

    Desde 4.7.1 ese comportamiento se restringe. Si un usuario tiene UN SOLO POST publicado, pero es un post type que no debería ser expuesto en el REST API, entonces tampoco se mostrará la información de ese usuario.

    En los demás casos, la información que se muestra no es de tipo sensible ni privado; de hecho, es la misma información que muestran la mayoría de themes cuando muestran el autor de un post o de un comentario (avatar, username, url, descrición). Que se muestre esa información en wp-json/wp/v2/users es tan seguro como que se muestre en el HTML.

    Y también es la información que se muestra en wp-json/wp/v2/posts, en la información del autor de cada post. Así que, si os preocupa wp-json/wp/v2/users, también debería preocuparos wp-json/wp/v2/posts. Quiero decir, que no hay problema.

    Gracias por la respuesta @cybmeta. Finalmente hemos optado por instalar el plugin “Disable REST API” que deshabilita el uso de JSON REST API para usuarios no autorizados. Por defecto, protege todas las entradas REST API /wp-json y deja habilitar el acceso normal a cualquier endpoint según necesidad.

    Te lo iba a proponer como solución temporal para que os aprueben el proyecto. Pero digo “solución temporal” porque lo importante es que entendáis que no se está exponiendo ninguna información sensible y el que problema que mencionas quedó perfectamente solucionado. La información expuesta es información pública no sensible.

    Si mi URL, descripción, username, avatar, etc, está aquí al lado junto a este comentario, ¿por qué es un problema que esté en el REST API? Espero explicarme bien.

    Javier Casares

    (@javiercasares)

    vamos, y por seguir en el camino, básicamente lo que se muestra en la REST-API en este caso, es la información pública. Es como decir que “no quiero dar mi cuenta de correo” porque es “mi login del correo”, o no dar mi cuenta de “twitter” porque es mi usuario de acceso a la plataforma. En fin… lo que se muestran son usuarios, poco más. Lo importante es proteger bien los usuarios con 2FAS obligatoria y listo.

Viendo 4 respuestas - 1 de 4 (de 4 total)
  • Debes estar registrado para responder a este tema.