Saltar al contenido principal
Publicado: 22 de diciembre de 2017 Número de CVE: CVE-2017-16897 Crédito: Alan Bishop

Resumen

Se ha descubierto una vulnerabilidad en la biblioteca passport-wsfed-saml2 que afecta a las versiones < 3.0.5. passport-wsfed-saml2 es un proveedor de autenticación de Passport.js para el protocolo WS-Federation y los tokens SAML2. Esta vulnerabilidad permite a un atacante hacerse pasar por otro usuario y, potencialmente, elevar sus privilegios si el no firma la respuesta SAML completa, sino únicamente la aserción dentro de la respuesta. Un atacante que explote con éxito esta vulnerabilidad podría usar esa respuesta para crear una solicitud con un NameIdentifier distinto con el fin de iniciar sesión como otro usuario. Un actor malicioso también podría llevar a cabo un ataque de escalada de privilegios si se autentica como un usuario concreto con privilegios administrativos. El atacante debe tener una cuenta existente o ser capaz de interceptar el tráfico cifrado y modificar la respuesta SAML en tiempo real. Esta actualización corrige la vulnerabilidad al evitar ataques de wrapping en los elementos Assertion y Response, además de introducir algunos cambios defensivos en las expresiones XPath. También se ha implementado una actualización para mejorar la forma de registrar la información sobre la firma de la respuesta SAML. Corregir esta vulnerabilidad requiere actualizar la biblioteca.

¿Estoy afectado?

Esta vulnerabilidad afectó a los tenants en la nube que utilizaban la conexión con el proveedor de identidad SAMLP en la que el proveedor de identidad:
  • firmaba la respuesta SAML y la aserción
  • no firmaba la respuesta SAML, pero sí la aserción
Los tenants en la nube de Auth0 no necesitan realizar ninguna acción. El alcance de la vulnerabilidad también se extendía a quienes usaban la estrategia passport-wsfed-saml2 con passport.js, lo que requiere actualizar la biblioteca (consulta la siguiente sección).

¿Cómo solucionarlo?

Los desarrolladores que usan la biblioteca passport-wsfed-saml2 deben actualizarla a la versión más reciente: 3.0.5. Los paquetes actualizados están disponibles en npm. Para asegurarse de recibir futuras correcciones de errores, compruebe que su archivo package.json esté configurado para aceptar actualizaciones de parche y de versiones secundarias de nuestras bibliotecas.
{
  "dependencies": {
    "passport-wsfed-saml2": "^3.0.5"
  }
}

¿Esta actualización afectará a mis usuarios?

No. Esta corrección aplica un parche a la biblioteca sobre la que se ejecuta tu aplicación, pero no afectará a tus usuarios, a su estado actual ni a ninguna sesión existente.