# Weak Password Recovery Mechanism for Forgotten Password (CWE-640) The product contains a mechanism for users to recover or change their passwords without knowing the original password, but the mechanism is weak. **Stack:** Python - Prevalence: Alta Frequentemente explorada - Impact: Alto 3 regras de severidade alta - Prevention: Documentada 3 exemplos de correção **OWASP:** Identification and Authentication Failures (A07:2021-Identification and Authentication Failures) - #7 ## Description Weak password recovery mechanisms can be exploited to take over user accounts. Common issues include predictable reset tokens, security questions with easily guessable answers, or lack of verification. ## Prevention Estratégias de prevenção para Weak Password Recovery baseadas em 1 regras de detecção do Shoulder. ### Python Use the secrets module for cryptographically secure token generation ## Warning Signs - [HIGH] password reset tokens generated using weak or predictable methods like timestamps or non-cryptograph ## Consequences - Obter privilégios - Burlar mecanismo de proteção ## Mitigations - Use tokens fortes e aleatórios para links de redefinição de senha - Implemente expiração de token (ex.: 1 hora) - Exija verificação adicional como e-mail ou SMS - Nunca exponha o token de redefinição em URLs que possam ser registrados em log ## Detection - Total rules: 3 - Languages: go, javascript, typescript, python ## Rules by Language ### Python (1 rules) - **Weak Password Reset Token** [HIGH]: Detects password reset tokens generated using weak or predictable methods like timestamps or non-cryptographic random. - Remediation: Use the secrets module for cryptographically secure token generation. ```python import secrets token = secrets.token_urlsafe(32) ``` Learn more: https://shoulder.dev/learn/python/cwe-640/weak-password-reset-token