Nuevos labs cada semana — Accede a todos desde 5€/mes

Mass Assignment

Alto

Mass Assignment / Asignación Masiva

Definición

Mass Assignment es una vulnerabilidad que ocurre cuando una aplicación asigna automáticamente los valores de una petición HTTP a los campos de un modelo u objeto de datos sin filtrar qué campos pueden ser modificados. Un atacante puede agregar campos adicionales a la petición para modificar atributos sensibles como el rol, el estado o el precio.

Impacto

Escalada de privilegios (cambiar role a admin)Bypass de restricciones de pago (cambiar price a 0)Modificación de estado de verificación de cuentasAcceso a funcionalidades premium sin pagarModificación de datos que no deberían ser editables por el usuario

Ejemplos

Mass Assignment para escalada de privilegios

El endpoint de actualización de perfil acepta cualquier campo del body y lo pasa directamente al ORM. El atacante agrega campos como 'role' o 'verified' que no aparecen en el formulario pero que el modelo sí acepta.

# Petición legítima de actualización de perfil
PUT /api/users/me
Content-Type: application/json
{"name": "Juan", "email": "juan@ejemplo.com"}

# Petición con campos adicionales (Mass Assignment)
PUT /api/users/me
Content-Type: application/json
{"name": "Juan", "email": "juan@ejemplo.com", "role": "admin", "verified": true}

# Si el backend hace: User.findByIdAndUpdate(userId, req.body)
# Sin filtrar req.body, el atacante se convierte en admin

Practica Mass Assignment con labs reales

Aplica lo que has aprendido en entornos seguros basados en reportes de bug bounty.

Ver labs de práctica