Pregunta 1: ¿Por qué sucede esto?
Su sesión solo está vinculada a una cookie de sesión, no a la IP ni a los detalles del navegador. Esto es completamente común, incluso Github hace eso. (El uso de propiedades adicionales para vincular la sesión puede tener consecuencias no deseadas, por ejemplo, podría llevar a cierres de sesión aleatorios cuando un usuario actualiza su navegador o cambia su IP).
Pregunta 2: Hay una forma probable de resolver este problema.
No es un problema de seguridad importante. Copiar cookies de un navegador a otro requiere acceso al almacenamiento de cookies de un navegador que no tiene un atacante común. Si aún desea asegurarse de que un usuario no pueda reutilizar su sesión en un navegador diferente, puede vincular propiedades adicionales, por ejemplo. invalide una sesión tan pronto como cambie el encabezado User-Agent
.
Pregunta 3: ¿Es esto incluso una vulnerabilidad de reparación de sesión?
No, no lo es. En un ataque de fijación de sesión, fuerza un ID de sesión conocido en una víctima (no autenticada). Esta identificación sigue siendo válida después de que la víctima inicie sesión para que pueda reutilizarla para autenticarse como la víctima. Pero sin una vulnerabilidad adicional, no hay manera de insertar la cookie de sesión en el navegador de la víctima en primer lugar. La página de OWASP en ella tiene algunos ejemplos que muestran las posibles condiciones previas que pueden llevar a una vulnerabilidad de reparación de sesión.
Pregunta 4: ¿Debo informarlo a su programa de recompensas de errores?
Lo más probable es que esté fuera del alcance. Con las hordas de cazadores de recompensas de errores, debe esperar que este tipo de problemas ya estén cubiertos en sitios de alto perfil y, si persisten, es por diseño.
En algunos casos, puedo iniciar sesión en el segundo navegador incluso después de cerrar la sesión del primer navegador.
Un cierre de sesión debe invalidar la sesión actual pero no necesariamente terminar todas las demás sesiones activas. Solo porque usted cierra la sesión de Github en su teléfono, no necesariamente quiere que se cierre la sesión también en su navegador.
Esta demostración muestra en el ejemplo de Github que a menudo se permite copiar la misma cookie de sesión de un cliente a otro:
- Inicia sesión en Github.
- Copie la cookie de sesión de usuario
user_session
del tarro de cookies del navegador. (No puede hacerlo con JS porque la cookie es HttpOnly
.)
-
$ curl -b "user_session=[your session id]" https://github.com/
- Encontrará que la respuesta HTML todavía está autenticada. (Debería ver su propio nombre de usuario y sus repositorios en el código).