Alerta de Segurança Debian

DSA-379-1 sane-backends -- várias vulnerabilidades

Data do Alerta:
11 Set 2003
Pacotes Afetados:
sane-backends
Vulnerável:
Sim
Referência à base de dados de segurança:
Na base de dados do BugTraq (na SecurityFocus): ID BugTraq 8593, ID BugTraq 8594, ID BugTraq 8595, ID BugTraq 8596, ID BugTraq 8597, ID BugTraq 8600.
No dicionário CVE do Mitre: CVE-2003-0773, CVE-2003-0774, CVE-2003-0775, CVE-2003-0776, CVE-2003-0777, CVE-2003-0778.
Informações adicionais:

Alexander Hvostov, Julien Blache e Aurelien Jarno descobriram vários problemas relacionados a segurança no pacote sane-backends, que contém uma biblioteca API para scanners incluindo um daemon (no pacote libsane) que pode ser explorado remotamente. Estes problemas permitem que o atacante remoto cause uma falha de segmentação e/ou consuma quantidades arbitrárias de memória. O ataque obtem sucesso mesmo que o computador do atacante não esteja listado no saned.conf.

Você está vulnerável a este ataque somente se você rodar o saned, por exemplo, no xinetd ou inetd. Se as entradas no arquivo de configuração do xinetd ou inetd estiverem comentadas ou não existirem, você está seguro.

Tente "telnet localhost 6566" no servidor que pode estar rodando saned. Se você obtiver "conexão recusada", o saned não está rodando e você está seguro.

O projeto de Vulnerabilidades e Exposições Comuns identifica os seguintes problemas:

  • CAN-2003-0773:

    O saned verifica a identidade (endereço IP) do computador remoto somente depois que a primeira comunicação ocorre (SANE_NET_INIT). Portanto, qualquer um podem enviar aquele RPC, mesmo que o computador remoto não tenha permissão para scannear (não esteja listado no saned.conf).

  • CAN-2003-0774:

    O saned não possui verificações de erro praticamente em nenhum lugar do código. Portanto, perdas de conexão são datectadas muito tarde. Se a queda da conexão não for detectada, o acesso ao buffer interno wire deixa os limites da memória alocada. Assim, memória aleatória "após" o buffer wire é lida, o que será seguido por uma falha de segmentação.

  • CAN-2003-0775:

    Se o saned espera strings, ele aloca (malloc) a memória necessária para armazenar a string completa depois que ele recebe o tamanho da string. Se a conexão for perdida antes que ela receber o tamanho da string, o malloc irá reservar uma quantidade arbitrária de memória. Dependendo deste tamanho e da quantidade de memória disponívelou o malloc falha (->o saned fecha amigavelmente) ou uma grande quantidade de memória é alocada. Podem ocorrrer uso de swap e medidas "Sem Memória", dependendo do kernel.

  • CAN-2003-0776:

    O saned não verifica a validade dos números RPC que ele recebe antes de obter os parâmetros.

  • CAN-2003-0777:

    Se mensagens de depuração estiverem habilitadas e uma conexão for perdida, strings não terminadas por null podem ser impressas e podem ocorrer falhas de segmentação.

  • CAN-2003-0778:

    É possível alocar uma quantidade arbitrária de memória no servidor rodando o saned mesmo se a conexão não for perdida. No momento, isto não pode ser facilmente corrigido no momento, de acordo com o autor. É melhor limitar a quantidade total de memória que o saned pode usar (ulimit).

Para a distribuição estável (woody), este problema foi corrigido na versão 1.0.7-4.

Para a distribuição instável (sid), este problema foi corrigido na versão 1.0.11-1 e posteriores.

Nós recomendamos que você atualiza seus pacotes libsane.

Corrigido em:

Debian GNU/Linux 3.0 (woody)

Fonte:
http://security.debian.org/pool/updates/main/s/sane-backends/sane-backends_1.0.7-4.dsc
http://security.debian.org/pool/updates/main/s/sane-backends/sane-backends_1.0.7-4.diff.gz
http://security.debian.org/pool/updates/main/s/sane-backends/sane-backends_1.0.7.orig.tar.gz
Alpha:
http://security.debian.org/pool/updates/main/s/sane-backends/libsane_1.0.7-4_alpha.deb
http://security.debian.org/pool/updates/main/s/sane-backends/libsane-dev_1.0.7-4_alpha.deb
ARM:
http://security.debian.org/pool/updates/main/s/sane-backends/libsane_1.0.7-4_arm.deb
http://security.debian.org/pool/updates/main/s/sane-backends/libsane-dev_1.0.7-4_arm.deb
Intel IA-32:
http://security.debian.org/pool/updates/main/s/sane-backends/libsane_1.0.7-4_i386.deb
http://security.debian.org/pool/updates/main/s/sane-backends/libsane-dev_1.0.7-4_i386.deb
Intel IA-64:
http://security.debian.org/pool/updates/main/s/sane-backends/libsane_1.0.7-4_ia64.deb
http://security.debian.org/pool/updates/main/s/sane-backends/libsane-dev_1.0.7-4_ia64.deb
HPPA:
http://security.debian.org/pool/updates/main/s/sane-backends/libsane_1.0.7-4_hppa.deb
http://security.debian.org/pool/updates/main/s/sane-backends/libsane-dev_1.0.7-4_hppa.deb
Motorola 680x0:
http://security.debian.org/pool/updates/main/s/sane-backends/libsane_1.0.7-4_m68k.deb
http://security.debian.org/pool/updates/main/s/sane-backends/libsane-dev_1.0.7-4_m68k.deb
Big endian MIPS:
http://security.debian.org/pool/updates/main/s/sane-backends/libsane_1.0.7-4_mips.deb
http://security.debian.org/pool/updates/main/s/sane-backends/libsane-dev_1.0.7-4_mips.deb
Little endian MIPS:
http://security.debian.org/pool/updates/main/s/sane-backends/libsane_1.0.7-4_mipsel.deb
http://security.debian.org/pool/updates/main/s/sane-backends/libsane-dev_1.0.7-4_mipsel.deb
PowerPC:
http://security.debian.org/pool/updates/main/s/sane-backends/libsane_1.0.7-4_powerpc.deb
http://security.debian.org/pool/updates/main/s/sane-backends/libsane-dev_1.0.7-4_powerpc.deb
IBM S/390:
http://security.debian.org/pool/updates/main/s/sane-backends/libsane_1.0.7-4_s390.deb
http://security.debian.org/pool/updates/main/s/sane-backends/libsane-dev_1.0.7-4_s390.deb
Sun Sparc:
http://security.debian.org/pool/updates/main/s/sane-backends/libsane_1.0.7-4_sparc.deb
http://security.debian.org/pool/updates/main/s/sane-backends/libsane-dev_1.0.7-4_sparc.deb

Checksums MD5 dos arquivos listados estão disponíveis no alerta original.