highCWE-285API5:2023

Autorización de Funciones Rota

Endpoints admin o privilegiados accesibles a usuarios regulares — la falta de checks de roles permite escalación de privilegios a funciones administrativas.

Cómo Funciona

Esta vulnerabilidad ocurre cuando endpoints de API que solo deberían ser accesibles para admins o roles específicos no verifican el rol del usuario. Usuarios regulares pueden acceder a funciones admin simplemente llamando al endpoint directamente. Patrones comunes incluyen rutas admin que solo verifican si el usuario está autenticado (no su rol), endpoints admin ocultos que dependen de oscuridad, o checks de roles inconsistentes donde algunas rutas admin están protegidas pero otras no.

Código Vulnerable
// Admin endpoint — only checks authentication, not role
app.delete('/api/admin/users/:id', auth, async (req, res) => {
  await User.deleteOne({ _id: req.params.id });
  res.json({ success: true });
});
Código Seguro
// Admin endpoint — checks both auth and role
app.delete('/api/admin/users/:id', auth, requireRole('admin'),
  async (req, res) => {
    await User.deleteOne({ _id: req.params.id });
    res.json({ success: true });
  }
);

Ejemplo Real

En 2019, una vulnerabilidad en la API de una aerolínea importante permitía a cualquier usuario autenticado acceder a endpoints admin para gestionar vuelos y manifiestos de pasajeros. Los endpoints requerían autenticación pero no verificaban roles.

Cómo Prevenirlo

  • Implementa control de acceso basado en roles (RBAC) como middleware
  • Aplica checks de roles consistentemente en TODOS los endpoints admin
  • Usa una capa de autorización centralizada, no checks por ruta
  • Audita regularmente endpoints admin por autorización adecuada

Tecnologías Afectadas

Node.jsPythonGoJavaPHPC#

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas