Broken Object Level Authorization (BOLA)
Los endpoints de API no verifican que el usuario que hace el request es dueño del recurso al que accede — permitiendo a atacantes acceder a datos de otros usuarios cambiando IDs.
Cómo Funciona
BOLA es el equivalente API de IDOR. Los endpoints reciben identificadores de objetos (IDs) en requests pero no verifican que el usuario autenticado tenga permiso para acceder a ese objeto específico. Un atacante simplemente cambia el ID en el request para acceder a datos de otro usuario. Es la vulnerabilidad API #1 porque es extremadamente común y fácil de explotar — solo incrementa el ID en la URL o body del request.
// GET /api/orders/:id
app.get('/api/orders/:id', auth, async (req, res) => {
const order = await Order.findById(req.params.id);
res.json(order); // No ownership check!
});// GET /api/orders/:id
app.get('/api/orders/:id', auth, async (req, res) => {
const order = await Order.findOne({
_id: req.params.id,
userId: req.user.id // Ownership check
});
if (!order) return res.status(404).json({ error: 'Not found' });
res.json(order);
});Ejemplo Real
En 2023, una vulnerabilidad BOLA en la API de una telecom importante de EEUU permitió a atacantes acceder a datos de cualquier cliente cambiando el número de cuenta en requests API. Más de 37 millones de registros de clientes fueron expuestos.
Cómo Prevenirlo
- Siempre incluye propiedad del usuario en queries a base de datos
- Usa UUIDs en vez de IDs secuenciales para dificultar adivinación
- Implementa middleware de autorización que verifique propiedad del objeto
- Escribe tests de integración que verifiquen que acceso cruzado está bloqueado
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Autenticación Rota (API)
highLos 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.
Autorización de Propiedades de Objeto Rota
mediumLa API permite a usuarios leer o modificar propiedades a las que no deberían tener acceso — mass assignment, exposición excesiva de datos o falta de control de acceso a nivel de campo.
Consumo de Recursos Sin Restricción
mediumEndpoints de API sin rate limiting, paginación o límites de recursos — permitiendo a atacantes agotar recursos del servidor, generar costos o extraer datasets grandes.
Autorización de Funciones Rota
highEndpoints admin o privilegiados accesibles a usuarios regulares — la falta de checks de roles permite escalación de privilegios a funciones administrativas.