SEGURANÇA
Boletim
001/96 da Lista de Segurança da Pangéia Informática
18
de Agosto de 1996
Tópico:
Vulnerabilidade em Resolv+
Foi verificada uma vulnerabilidade na biblioteca
resolv+, usada por
todos os programas que usam resolução de nomes tais
como:
ping, telnet, rsh, ssh e muitos outros.
Esta vulnerabilidade permite a um usuário local
ler qualquer arquivo do
sistema incluindo /etc/shadow, e qualquer outro
que o usuário root
tenha permissão para ler, já que estes programas
rodam com o suid ligado.
1. Descrição
Programas como ftp, netscape e outros tem que permitir
ao usuário comum
usar determinados recursos do sistema, como sockets
por exemplo.
Uma maneira pratica de permitir isso é ligar o suid
dos executáveis,
esta solução em si não representa nenhum risco a segurança
da instalaçào.
2. Impacto
Foi observado que, em determinadas circunstâncias,
esta característica
pode permitir a um usuário comum ler um arquivo com
permissões de leitura
restritas ao root.
Esta vulnerabilidade existe na biblioteca resolv+,
que em algum sistemas
é incluida na biblioteca libc (Linux, por exemplo).
3. Solução
Esta vulnerabilidade NÃO foi observada nos seguintes
sistemas:
. HP-UX 10.0
. AIX 3.5
. SunOS (sem a lib resolv+ separada) e Solaris 2.5
. OSF1 3.2
. Distribuicoes de Berkeley
. SCO Unix 3.2v4.2 e 3.2v5.0.0
Mas FOI encontrada em Linux
rodando varias versões da libc,
incluindo a mais recente (libc-5.3.12), as mais novas
versões de
kernel incluido a mais recente (2.0.13).
Note que isso não elimina a possibilidade desta existir
em outros
sistemas Unix não testados.
A única maneira de eliminar esta condição foi gerar
uma nova libc,
alterando o código que continha o problema. A solução
encontrada
podera ser melhor implementada em futuras versões,
caso consiga
maior cooperação.
As bibliotecas libc-5.3.12 para Linux estáticas e
dinamicas estão
disponíveis em:
Onde:
- libc.a
- biblioteca estática (a.out)
- libc.so.5.3.12
- biblioteca dinamica (shared)
- libc.md5
- assinatura das bibliotecas
Para os programas que usam bibliotecas dinamicas nada
precisa ser
alterado, apenas copie a libc.so.5.3.12 para o diretorio
/lib, e rode
o programa ldconfig. Nos casos de a.out (estáticos)
é necessário copiar
a libc.a e recompilar os programas que usam a resolv+.
Nota: É recomendado que se atualize as bibliotecas libm
(libm.so.5.0.6)
e libpthreads (libpthreads.so.1.60.4) e respectivos
objetos relacionados.
4. Informações adicionais:
Assinatura das libs, usando o utilitário md5:
e412db2671e813138ec7424653219f45 libc.a
9875fc34e61c239954ca73573188b05f libc.so.5.3.12
http://www.pangeia.com.br/faq
nelson@pangeia.com.br
5. Agradecimentos:
Pouca cooperação foi conseguida para conseguir identificar as
máquinas afetadas com o problema, meus sinceros agradecimentos a:
Joao Cesar da Escossia (escossia@npd1ufes.br)
Klaus Steding-Jessen (jessen@dcc.unicamp.br)
Pedro Vazquez (vazquez@iqm.unicamp.br)
Ricardo Nassif (rn@emacs.bluesky.net)
|