Bulletin d'alerte Debian

DSA-379-1 sane-backends -- Plusieurs vulnérabilités

Date du rapport :
11 septembre 2003
Paquets concernés :
sane-backends
Vulnérabilité :
Oui
Références dans la base de données de sécurité :
Dans la base de données de suivi des bogues (chez SecurityFocus) : Identifiant BugTraq 8593, Identifiant BugTraq 8594, Identifiant BugTraq 8595, Identifiant BugTraq 8596, Identifiant BugTraq 8597, Identifiant BugTraq 8600.
Dans le dictionnaire CVE du Mitre : CVE-2003-0773, CVE-2003-0774, CVE-2003-0775, CVE-2003-0776, CVE-2003-0777, CVE-2003-0778.
Plus de précisions :

Alexander Hvostov, Julien Blache et Aurelien Jarno ont découvert plusieurs problèmes liés à la sécurité dans le paquet sane-backends, qui contient une bibliothèque API pour les scanners, incluant un démon pour scanner (dans le paquet libsane) qui peut être exploité à distance. Ces problèmes permettent à un attaquant distant de provoquer une faute de segmentation et/ou d'utiliser une quantité arbitraire de mémoire. L'attaque réussit toujours, même si l'ordinateur de l'attaquant n'est pas listé dans saned.conf.

Vous êtes vulnérable seulement si vous lancez saned partir de xinetd ou d'inetd. Si les entrées dans le fichier de configuration de xinetd ou inetd sont commentées ou n'existent pas, il n'y a pas de danger.

Essayez « telnet localhost 6566 » sur le serveur qui lance saned. Si vous obtenez connection refused, saned ne fonctionne pas et vous êtes hors de danger.

Le projet Common Vulnerabilities and Exposures a identifié les problèmes suivants :

  • CAN-2003-0773 :

    saned vérifie l'identité (l'adresse IP) de l'hôte distant seulement après la mise en place de la première communication (SANE_NET_INIT). Ainsi, tout le monde peut envoyer ce RPC, même si l'hôte distant n'a pas la permission de scanner (quand il n'est pas listé dans saned.conf).

  • CAN-2003-0774 :

    saned ne vérifie pas les erreurs partout dans le code. Ainsi, les fins de connexion sont détectées très tard. Si la coupure de la connexion n'est pas détectée, l'accès au tampon de lien interne laisse les limites de la mémoire allouée. Ainsi, de la mémoire aléatoire « après » le tampon de lien est lue, ce qui est suivi par une faute de segmentation.

  • CAN-2003-0775 :

    Si saned s'attend à des chaînes de caractères, il alloue avec malloc la mémoire nécessaire pour enregistrer la chaîne complète lorsqu'il a reçu la taille de cette chaîne. Si la connexion est coupée avant de transmettre la taille, malloc réservera une taille arbitraire de mémoire. En fonction de cette taille et de la quantité de mémoire disponible, soit malloc plante (–> saned s'arrête élégamment), soit une quantité énorme de mémoire est allouée. L'utilisation de la mémoire d'échange et des mesures OOM peuvent apparaître, en fonction du noyau.

  • CAN-2003-0776 :

    saned ne vérifie pas la validité des nombres RPC qu'il reçoit avant d'obtenir les paramètres.

  • CAN-2003-0777 :

    Si les messages de débogage sont activés et une connexion coupée, les chaînes qui ne sont pas terminées par null peuvent être affichées et une faute de segmentation peut avoir lieu.

  • CAN-2003-0778 :

    Il est possible d'allouer une quantité arbitraire de mémoire sur le serveur lançant saned, même si la connexion n'est pas coupée. Pour le moment, cela ne peut pas être facilement corrigé, si l'on en croit l'auteur. Il vaut mieux limiter la quantité totale de mémoire que saned peut utiliser (ulimit).

Pour la distribution stable (Woody), ce problème a été corrigé dans la version 1.0.7-4.

Pour la distribution instable (Sid), ce problème a été corrigé dans les versions 1.0.11-1 et suivantes.

Nous vous recommandons de mettre à jour vos paquets libsane.

Corrigé dans :

Debian GNU/Linux 3.0 (woody)

Source :
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

Les sommes MD5 des fichiers indiqués sont disponibles sur la page originale de l'alerte de sécurité.