Broken Access Control
AltoBroken Access Control / Control de Acceso Roto
Definición
Broken Access Control engloba todas las fallas donde los usuarios pueden actuar fuera de sus permisos previstos. Incluye escalada de privilegios horizontal (acceder a datos de otros usuarios del mismo rol) y vertical (realizar acciones de un rol superior). Es la vulnerabilidad #1 del OWASP Top 10 2021.
Impacto
Ejemplos
Escalada de privilegios vertical
El servidor verifica que el usuario está autenticado pero no verifica su rol. Cualquier usuario autenticado puede acceder a funcionalidades de administrador simplemente accediendo a las URLs de admin.
# Un usuario normal intenta acceder a endpoints de admin GET /api/admin/users HTTP/1.1 Authorization: Bearer <token_usuario_normal> # Si el servidor solo verifica que hay un token válido # pero no que el usuario tenga rol de admin, # el usuario normal obtiene la lista de todos los usuarios. # Otros endpoints típicos no protegidos: DELETE /api/admin/users/123 PUT /api/admin/settings GET /api/admin/dashboard/stats
Escalada horizontal por manipulación de parámetro
El servidor confía en el userId enviado en el body de la petición en lugar de extraerlo del token de autenticación. El atacante puede realizar acciones en nombre de cualquier usuario cambiando este parámetro.
# El frontend envía el userId como parámetro del body
POST /api/orders
{"userId": "mi-id-123", "productId": "prod-1"}
# El atacante cambia el userId
POST /api/orders
{"userId": "otro-id-456", "productId": "prod-1"}
# El servidor crea el pedido para otro-id-456
# sin verificar que el userId del body coincida con el del token