highCWE-287API2:2023

Autenticación Rota (API)

Los mecanismos de autenticación de la API son débiles o están mal implementados — JWT sin validación adecuada, tokens fuera de cookies httpOnly o sin expiración.

Cómo Funciona

Los fallos de autenticación de API incluyen no validar firmas JWT, aceptar tokens expirados, usar algoritmos de firma débiles, exponer tokens en URLs, no tener rate limiting en endpoints de auth, y no usar cookies httpOnly. Los atacantes explotan esto forjando tokens, haciendo brute force de credenciales o robando tokens por XSS. Las APIs son especialmente vulnerables porque están diseñadas para acceso programático, facilitando ataques automatizados.

Código Vulnerable
// JWT verification without algorithm check
const decoded = jwt.verify(token, SECRET);
// Accepts any algorithm, including 'none'

// Token in URL
app.get('/api/data?token=eyJhbG...');
Código Seguro
// JWT verification with strict algorithm
const decoded = jwt.verify(token, SECRET, {
  algorithms: ['HS256'],
  maxAge: '1h'
});
// Token from httpOnly cookie only
const token = req.cookies.auth_token;

Ejemplo Real

En 2015, una vulnerabilidad crítica en la librería npm jsonwebtoken permitía a atacantes bypasear verificación JWT usando el algoritmo 'none'. Cualquier app que no restringiera algoritmos explícitamente era vulnerable a bypass de autenticación.

Cómo Prevenirlo

  • Siempre especifica algoritmos JWT permitidos explícitamente
  • Configura expiración de tokens y valídala en cada request
  • Usa cookies httpOnly y secure en vez de headers Authorization cuando sea posible
  • Implementa rate limiting en endpoints de autenticación

Tecnologías Afectadas

Node.jsPythonGoJavaPHPC#

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas