Alguns antecedentes:
O bit setuid:
O bit setuid em um arquivo executável faz com que os executáveis executados por qualquer usuário sejam executados como se estivessem sendo executados pelo proprietário do executável. Portanto, se setuid é definido em um programa que pertence a root, não importa quem o executa, ele será executado com privilégios de root. É claro que não é tão simples, veja o artigo da Wikipedia, ou obtenha uma cópia da Programação de Steven no Ambiente Unix.
Um dump principal:
Um core dump é um despejo da memória de trabalho do programa em um arquivo. Veja este artigo da wikipedia .
suid_dumpable :
Isto controla se o núcleo pode ser despejado de um programa setuid como descrito acima. Ver abaixo. Este é um ajuste do kernel, você pode alterá-lo com:
sudo sysctl -w kernel.suid_dumpable=2
Você saberia mais sobre esse ajuste na documentação do seu código-fonte, que, se instalado, pode ser encontrado em um diretório como: /usr/src/linux-source-2.6.27/Documentation/sysctl/. Nesse caso, a referência abaixo está em fs.txt nesse diretório. Use o comando uname -a
para descobrir sua versão do kernel.
Por que é importante:
Pode ser um risco de segurança:
Portanto, a ideia é que, se houver despejos básicos e um usuário regular puder lê-los, eles poderão descobrir informações privilegiadas. Se o programa for bem guardado, ele teria informações privilegiadas na memória, e o usuário pode ler o despejo, eles podem descobrir informações privilegiadas.
Referência:
This value can be used to query and set the core dump mode for setuid
or otherwise protected/tainted binaries. The modes are
0 - (default) - traditional behaviour. Any process which has changed
privilege levels or is execute only will not be dumped
1 - (debug) - all processes dump core when possible. The core dump is
owned by the current user and no security is applied. This is
intended for system debugging situations only.
2 - (suidsafe) - any binary which normally not be dumped is dumped
readable by root only. This allows the end user to remove
such a dump but not access it directly. For security reasons
core dumps in this mode will not overwrite one another or
other files. This mode is appropriate when adminstrators are
attempting to debug problems in a normal environment.