Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en una petición GET en los endpoints /login y /change en el paquete Python "Flask-Security-Too" (CVE-2021-21241)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-352 Falsificación de petición en sitios cruzados (Cross-Site Request Forgery)
Fecha de publicación:
11/01/2021
Última modificación:
19/01/2021

Descripción

El paquete Python "Flask-Security-Too" es usado para agregar funcionalidades de seguridad a su aplicación Flask. Es una versión mantenida independientemente de Flask-Security basada en la versión 3.0.0 de Flask-Security. En Flask-Security-Too desde la versión 3.3.0 y versiones anteriores a 3.4.5, los endpoints /login y /change pueden devolver el token de autenticación del usuario autenticado en respuesta a una petición GET. Dado que las peticiones GET no están protegidas con un token CSRF, esto podría conllevar a que un sitio de terceros malicioso adquiera el token de autenticación. La versión 3.4.5 y la versión 4.0.0 están parcheadas. Como solución temporal, si no está utilizando tokens de autenticación, puede establecer el SECURITY_TOKEN_MAX_AGE en "0" (segundos), lo que debería inutilizar el token

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:flask-security-too_project:flask-security-too:*:*:*:*:*:*:*:* 3.3.0 (incluyendo) 3.4.5 (excluyendo)