Autorización de Propiedades de Objeto Rota
La 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.
Cómo Funciona
Esta vulnerabilidad combina dos problemas: mass assignment (el usuario puede setear propiedades como role o isAdmin incluyéndolas en el body del request) y exposición excesiva de datos (la API retorna más campos de los que el cliente necesita, incluyendo datos internos sensibles). Cuando una API acepta ciegamente todos los campos del body y los guarda en la base de datos, o retorna objetos completos sin filtrar, crea agujeros de seguridad serios.
// Mass assignment — accepts any field
app.put('/api/profile', auth, async (req, res) => {
await User.updateOne(
{ _id: req.user.id },
{ $set: req.body } // Accepts role, isAdmin, etc!
);
});// Whitelist allowed fields
app.put('/api/profile', auth, async (req, res) => {
const { name, email, avatar } = req.body;
await User.updateOne(
{ _id: req.user.id },
{ $set: { name, email, avatar } }
);
});Ejemplo Real
En 2012, una vulnerabilidad de mass assignment en GitHub permitió a un usuario agregar su SSH key al repositorio de cualquier organización incluyendo el ID de la organización en el body del request. Fue descubierta por un investigador que agregó su key al repo de Rails.
Cómo Prevenirlo
- Nunca pases req.body directo a operaciones de base de datos
- Haz whitelist de campos permitidos por cada endpoint
- Usa DTOs o schemas Zod para validar y filtrar input
- Retorna solo campos necesarios en respuestas de API
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Broken Object Level Authorization (BOLA)
highLos 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.
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.
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.