Mass Assignment
AltoMass 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
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