Skip to content

Una API web es vulnerable a Broken Function Level Authorization(BFLA) si permite que usuarios no autorizados o sin privilegios interactúen e invoquen puntos finales privilegiados, concediendo acceso a operaciones sensibles o información confidencial.

Diferencia clave vs BOLA:

  • BOLA: Puedes acceder al endpoint, pero no a objetos de otros usuarios
  • BFLANo deberías poder acceder NI SIQUIERA al endpoint

Para comprender la diferencia entre BOLA (Broken Object Level Authorization) y BFLA (Broken Function Level Authorization), imaginemos un edificio de oficinas. En el caso de BOLA, tienes acceso legítimo al edificio y puedes entrar a tu propia oficina (ID 101), pero el sistema tiene un error que también te permite entrar a la oficina de María (ID 102), accediendo así a recursos que no te pertenecen. En cambio, con BFLA, siendo un empleado normal, no deberías ni siquiera intentar entrar a la sala de servidores, pero el sistema falla y te permite acceder a este espacio privilegiado que está completamente fuera de tu nivel de autorización. Mientras BOLA se trata de acceder horizontalmente a objetos de otros usuarios en el mismo nivel, BFLA implica acceder verticalmente a funciones o endpoints que deberían estar restringidos a roles superiores.

Ejemplo:

  • BOLA (Broken Object Level Authorization)
c
// Endpoint: /api/files/{file_id}
// Usuario Juan (ID: 123) hace:
GET /api/files/456  // Archivo de María

// La API debería bloquearlo, pero responde:
{
  "id": 456,
  "owner": "maria@company.com",
  "content": "Documento confidencial de María"  // ¡BOLA!
}
  • Caso BFLA (Broken Function Level Authorization)
c
// Endpoint: /api/admin/database-backup  ← Solo para admins
// Usuario Juan (empleado normal) hace:
GET /api/admin/database-backup

// La API debería decir "403 Forbidden", pero responde:
{
  "backup": "Base de datos completa...",
  "users_passwords": "hashes...",
  "config": "claves secretas..."  // ¡BFLA!
}
-BOLABFLA
¿Qué puedes acceder?Objetos de otrosFunciones/endpoints privilegiados
¿El endpoint existe para ti?✅ Sí❌ No debería
EjemploVer archivo de otro usuarioUsar panel de administración
AccesoHorizontal (mismo nivel)Vertical (hacia arriba)