Fallos del tipo CWE-915

167 resultados

Modificação descontrolada de atributos dinâmicos de objetos

Fraqueza em que a aplicação permite que um atacante modifique atributos de objetos através de entrada do usuário sem validação adequada. O código trata dados externos como nomes de propriedades ou métodos, permitindo acesso ou alteração de atributos que não deveriam ser expostos. Isso é particularmente perigoso em linguagens dinâmicas como PHP, Python e JavaScript, onde objetos podem ter suas propriedades modificadas em runtime.

Ejemplo

Um endpoint de API PHP que recebe um JSON e faz `$user = (object) $_POST;` ou usa `$obj->$fieldName = $value;` onde `$fieldName` vem da requisição. Um atacante envia `{"admin":true,"role":"superuser"}` e consegue se elevar de privilégio porque o objeto foi populado sem filtro.

Cómo mitigar

Valide explicitamente quais atributos podem ser modificados usando uma whitelist de campos permitidos. Nunca confie em nomes de propriedades vindos do usuário — use um mapeamento seguro (ex: um array pré-definido) ou frameworks ORM que implementem proteção nativa. Desabilite a atribuição em massa descontrolada (mass assignment) em suas configurações.