O que é o 'estouro de buffer' do libc gethostbyname e como posso me proteger dele

3

Aparentemente, há um bug na Biblioteca GNU C , que pode causar um estouro de buffer, como posso proteger eu mesmo com isso?!

Referência:

por blade19899 27.01.2015 / 22:09

1 resposta

5

De acordo com os Avisos de Segurança do Ubuntu , isso afeta 10.04 e 12.04 entre as versões atualmente suportadas de Ubuntu.

Como posso me proteger?

Upgrade.

sudo apt-get update
sudo apt-get upgrade

Ou, especificamente:

sudo apt-get update
sudo apt-get install libc6

Verifique a versão atualmente instalada usando apt-cache policy libc6 :

  • Para 12.04, deve ser 2.15-0ubuntu10.10 ou maior.
  • Para 10.04, deve ser 2.11.1-0ubuntu7.20 ou maior.

Reiniciar.

libc é um pacote principal. Você deve reiniciar para ter certeza de que nada no seu sistema está usando a versão antiga.

No mínimo, reinicie todos os serviços em execução no seu sistema.

O que é isso?

A equipe que descobriu esta vulnerabilidade publicou um comunicado ( postado na lista de discussão referida), examinando o código envolvido e os estudos de caso. Inclui um programa em C para detectar se o sistema está vulnerável.

Essencialmente, pesquisas de endereços no estilo IPv4 (envolvendo números e pontos) podem causar esse acionamento.

  

[O] nome do host deve   tem uma das seguintes formas: "a.b.c.d", "a.b.c", "a.b" ou "a",   onde a, b, c, d devem ser inteiros sem sinal, no máximo 0xfffffffful,   convertido com sucesso (ou seja, sem estouro de inteiro) por strtoul () em   decimal ou octal (mas não hexadecimal, porque 'x' e 'X' são   proibido).

Isso se deve a um erro de cálculo no tamanho de um buffer necessário, em que o tamanho é um pouco curto, permitindo que um strcpy abaixo da linha seja gravado após o final do buffer por uma quantidade limitada (4 bytes em 32 de 8 bits em máquinas de 64 bits).

Um exploit foi escrito pela equipe contra o servidor de email Exim, mas o código ainda não foi lançado.

A lista de serviços afetados inclui , mas não se limita a :

  

Servidores MySQL, servidores Secure Shell, aplicativos de envio de formulários e outros tipos de servidores de correio. ... Apache, Copos, Dovecot, GnuPG, isc-dhcp, lighttpd, mariadb / mysql, nfs-utils, nginx, nodejs, openldap, openssh, postfix, proftpd, pure-ftpd, rsyslog, samba, sendmail, sysklogd, syslog -ng, tcp_wrappers, vsftpd e xinetd.

Aparentemente, o código de teste é disponível no site da Universidade de Chicago . Portanto, você pode fazer:

wget https://webshare.uchicago.edu/orgs/ITServices/itsec/Downloads/GHOST.c
gcc GHOST.c -o GHOST
./GHOST

A saída final seria vulnerable ou not vulnerable .

    
por muru 27.01.2015 / 23:57

Tags