Weaknesses of type CWE-271
12 resultsErros ao reduzir privilégios
Ocorre quando uma aplicação tenta descartar ou reduzir seus privilégios (por exemplo, mudar de root para um usuário comum) mas falha na operação ou não valida se a redução foi bem-sucedida. O código segue executando com privilégios elevados quando deveria estar restrito, criando uma porta aberta para escalonamento de privilégios e comprometimento do sistema.
Um daemon que inicia como root e tenta mudar para um usuário não-privilegiado com setuid(), mas não verifica o retorno da função. Se a chamada falha silenciosamente (permissão negada, usuário inexistente), o processo continua rodando como root e aceita conexões de rede — um atacante local pode explorar isso para executar comandos administrativos.
Sempre valide explicitamente o sucesso de chamadas de redução de privilégio (verificar código de retorno e confirmar com getuid/geteuid). Estruture o código para falhar seguro: se a mudança de privilégio não funcionar, encerre o processo em vez de continuar. Use mecanismos como AppArmor ou SELinux como segunda camada de proteção.