Falhas do tipo CWE-273
23 resultadosVerificação inadequada de privilégios removidos
Ocorre quando um programa tenta abrir mão de privilégios elevados (como root), mas não valida se a operação foi bem-sucedida antes de executar operações sensíveis. Se a mudança de usuário ou grupo falhar silenciosamente, o código continua rodando com privilégios altos, abrindo brecha para escalação.
Um daemon que chama setuid(usuário_baixo) para rodar com menos privilégio, mas não verifica o retorno da função. Se setuid() falhar por qualquer razão (limite do sistema, permissão negada), o processo mantém UID 0 e executa arquivo temporário com acesso root, permitindo que um atacante o manipule.
Sempre verificar o retorno de funções de mudança de privilégios (setuid, setgid, setgroups, etc.) e abortar a execução se falharem. Nunca assumir que a operação sucedeu — valide explicitamente chamando getuid() ou getgid() após a mudança e compare com o valor esperado.