mediumCWE-521A07:2021

Política de Contraseña Débil

Sin requisitos de longitud mínima, complejidad o verificación contra contraseñas comunes en el registro o cambio de contraseña, haciendo las cuentas fácilmente vulnerables a fuerza bruta.

Cómo Funciona

Si aceptas contraseñas como '123456' o 'password', tus usuarios las usarán. Las contraseñas cortas y comunes caen ante ataques de diccionario en segundos. NIST SP 800-63B recomienda un mínimo de 8 caracteres (15 preferido) y verificar contra listas de contraseñas brecheadas en lugar de requerir reglas de complejidad que los usuarios solo burlan con 'Contrasena1!'.

Código Vulnerable
// MAL: sin validación de contraseña
const schema = z.object({
  email: z.string().email(),
  password: z.string(), // cualquier string aceptado
});
Código Seguro
// BIEN: enforce longitud mínima y verifica contra lista de brechas
const schema = z.object({
  email: z.string().email(),
  password: z.string()
    .min(8, 'La contraseña debe tener al menos 8 caracteres')
    .max(128)
    .refine(async (pw) => !(await isPwnedPassword(pw)), 'Esta contraseña apareció en un breach de datos'),
});

Ejemplo Real

El lanzamiento de Disney+ en 2019 vio miles de cuentas comprometidas en horas. La mayoría no fueron hackeadas — los usuarios habían reutilizado contraseñas débiles de brechas anteriores. Una política de longitud mínima y verificación de contraseñas brecheadas habría bloqueado la mayoría de estas cuentas.

Cómo Prevenirlo

  • Requiere un mínimo de 8 caracteres (15+ recomendado por NIST)
  • Verifica contraseñas contra la API de HaveIBeenPwned (pwned-passwords) para bloquear contraseñas brecheadas conocidas
  • Permite contraseñas largas (hasta 128+ caracteres) para fomentar frases de contraseña
  • No enforces reglas de complejidad (mayúscula + número + símbolo) — producen patrones predecibles
  • Muestra un medidor de fortaleza de contraseña para guiar a los usuarios hacia mejores elecciones

Tecnologías Afectadas

nodejsNext.jsPythonPHP

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas