Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 730

Atribuição em massa

Revisado porCybersecurity entrepreneur & security researcher

O que é Atribuição em massa?

Atribuição em massaVulnerabilidade em que a aplicação liga cegamente campos enviados pelo cliente a propriedades internas, permitindo ao atacante definir atributos que não devia controlar.


A atribuição em massa ocorre quando frameworks (Rails, Spring, ASP.NET, NestJS, Django) mapeiam automaticamente campos JSON ou de formulário recebidos para atributos do modelo, sem uma allow-list explícita. Um atacante adiciona propriedades extras — isAdmin, role, balance, tenantId — que o servidor então persiste. A falha é difícil de detectar em revisão de código porque a atribuição é implícita: uma única chamada update_attributes(params) ou de um model-binder oculta o fato de que todos os atributos são graváveis. Está catalogada como CWE-915 e aparece no OWASP API Security Top 10 (2019 A6, incorporada em API3 "Broken Object Property Level Authorization" em 2023).

O incidente canônico é o ataque de Egor Homakov ao GitHub em março de 2012: como o formulário de chave SSH vinculava public_key[user_id] sem uma whitelist, ele adicionou um campo forjado, anexou sua chave à conta de organização do Rails e enviou um commit para rails/rails. O GitHub corrigiu em poucas horas, e o episódio levou o Rails a tornar a whitelist attr_accessible — mais tarde strong_parameters — o padrão.

As mitigações incluem DTOs ou esquemas de entrada explícitos, allow-lists rigorosas de campos vinculáveis, separação de atributos internos dos modelos vinculáveis pelo usuário e testes negativos que enviam chaves JSON inesperadas.

flowchart TD
  A["Cliente envia POST com JSON<br/>{name, isAdmin:true}"] --> B[Auto-binder do framework]
  B --> C{Allow-list explícita<br/>de campos?}
  C -->|Não — atribuição em massa| D[Todas as chaves gravadas no modelo]
  D --> E[(isAdmin=true<br/>persistido no BD)]
  C -->|Sim — DTO / strong params| F[Apenas campos permitidos vinculados]
  F --> G[(Campos privilegiados ignorados)]

Exemplos

  1. 01

    Enviar {"name":"Bob","isAdmin":true} para /api/users e ser promovido a administrador.

  2. 02

    Atualizar um pedido com um campo de desconto oculto via POST, contornando as regras de preços.

Perguntas frequentes

O que é Atribuição em massa?

Vulnerabilidade em que a aplicação liga cegamente campos enviados pelo cliente a propriedades internas, permitindo ao atacante definir atributos que não devia controlar. Pertence à categoria Vulnerabilidades da cibersegurança.

O que significa Atribuição em massa?

Vulnerabilidade em que a aplicação liga cegamente campos enviados pelo cliente a propriedades internas, permitindo ao atacante definir atributos que não devia controlar.

Como se defender contra Atribuição em massa?

As defesas contra Atribuição em massa costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.

Quais são outros nomes para Atribuição em massa?

Nomes alternativos comuns: Vulnerabilidade de autobinding, Injeção de objeto.

Termos relacionados

Ver também