highCWE-306A01:2021

Endpoints Sin Autenticación

API routes que realizan operaciones sensibles — leer datos de usuarios, modificar registros, eliminar recursos — sin ninguna verificación de sesión o token.

Cómo Funciona

Sin un check de auth, cualquier request HTTP anónimo puede disparar tu endpoint. Los atacantes enumeran rutas leyendo tu bundle de JavaScript, revisando paths comunes o usando herramientas como ffuf. Una vez encontradas, las llaman libremente.

Código Vulnerable
// MAL: devuelve datos de usuario sin verificar auth
export async function GET(req: Request) {
  const { searchParams } = new URL(req.url);
  const userId = searchParams.get('userId');
  const user = await db.users.findUnique({ where: { id: userId } });
  return Response.json(user);
}
Código Seguro
// BIEN: verifica la sesión primero
export async function GET(req: Request) {
  const supabase = createClient();
  const { data: { user } } = await supabase.auth.getUser();
  if (!user) return Response.json({ error: 'No autorizado' }, { status: 401 });
  const profile = await db.users.findUnique({ where: { id: user.id } });
  return Response.json(profile);
}

Ejemplo Real

Las API routes generadas por IA rutinariamente se saltan los checks de auth porque los datos de entrenamiento contienen muchos ejemplos de rutas CRUD simples sin auth. El resultado son APIs en producción con endpoints de datos completamente abiertos.

Cómo Prevenirlo

  • Agrega un check de auth como la primera línea de cada API route handler
  • Crea un wrapper withAuth() reutilizable que devuelva 401 si no hay sesión válida
  • Audita cada archivo en tu directorio /api — confirma que cada uno tiene un check de sesión
  • Usa Data Hogo para escanear automáticamente todas tus API routes en busca de auth faltante

Tecnologías Afectadas

nodejsNext.jsPythonGo

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas