Bulletin d'alerte Debian

DSA-134-4 ssh -- Exploitation à distance

Date du rapport :
24 juin 2002
Paquets concernés :
ssh
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 5093.
Dans le dictionnaire CVE du Mitre : CVE-2002-0640, CVE-2002-0639.
Les annonces de vulnérabilité et les bulletins d'alerte du CERT : CA-2002-18, VU#369347.
Plus de précisions :

ISS X-Force a publié une annonce au sujet d'une faille du système d'identification à distance (Remote Challenge Vulnerability). Malheureusement, l'annonce était fausse sur certains points, ce qui a conduit à la confusion la plus complète. Aucune des versions d'OpenSSH contenues dans Debian n'est touchée par les méthodes d'authentification SKEY et BSD_AUTH décrites dans l'annonce d'ISS. De plus, Debian n'intègre pas de serveurs OpenSSH avec la fonction PAM telle qu'elle est décrite dans le dernier bulletin de l'équipe OpenSSH. (Cette fonction vulnérable est la fonction d'authentification qui utilise PAM via le mécanisme interactif au clavier [kbdinit].) Cette vulnérabilité touche les versions d'OpenSSH de la 2.3.1 à la 3.3. Aucune exploitation n'a encore était faite à ce jour de la vulnérabilité de PAM/kbdinit, mais les détails sont connus sur la place publique. Toutes ces vulnérabilités ont été corrigées dans OpenSSH 3.4.

En plus des rustines à ces vulnérabilités, nos paquets OpenSSH versions 3.3 et supérieures utilisent la fonction de séparation des droits de Niels Provos, qui emploie un processus non privilégié pour traiter le travail courant. Des failles dans les parties non privilégiées d'OpenSSH compromettraient un compte non privilégié restreint à un chroot vide, au lieu d'une compromission directe du compte root. La séparation des droits (Privilege separation) devrait permettre d'éviter les risques d'une future compromission d'OpenSSH.

Debian 2.2 (Potato) est équipée d'un paquet ssh basé sur OpenSSH 1.2.3, qui n'est pas sensible à la faille dont il est question dans ce bulletin. Les utilisateurs qui utilisent toujours une version 1.2.3 du paquet ssh n'ont pas immédiatement besoin de passer à la version 3.4 d'OpenSSH. Les utilisateurs qui sont déjà passés à la version 3.3 d'OpenSSH dans les versions ultérieures de la DSA-134 doivent mettre à jour leurs paquets et passer à la version 3.4 d'OpenSSH, étant donné que les paquets 3.3 sont vulnérables. Nous suggérons aux personnes qui utilisent OpenSSH 1.2.3 de passer à la version 3.4 pour profiter de la fonction de séparation des droits. (Même si encore une fois nous n'avons pas d'informations sur l'existence d'une faille de sécurité dans OpenSSH 1.2.3. Veuillez lire attentivement la mise en garde ci-dessous avant de mettre à jour OpenSSH 1.2.3). Nous recommandons aux personnes utilisant des versions rétroportées d'OpenSSH version 2.0 ou supérieures sur Potato de passer à OpenSSH 3.4.

L'actuelle prépublication de Debian (Woody) contient un paquet OpenSSH version 3.0.2p1 (ssh), qui est vulnérable au problème de PAM/kbdinit décrit ci-dessus. Nous recommandons aux utilisateurs de passer à OpenSSH 3.4 et d'activer la séparation des droits. Des paquets ssh-krb5 à jour (un paquet OpenSSH supportant l'authentification par la méthode kerberos) sont actuellement en cours de préparation. Les utilisateurs qui ne peuvent pas mettre à jour leurs paquets OpenSSH peuvent contourner la faille de sécurité en désactivant la fonction défaillante : assurez-vous que les lignes suivantes soient bien présentes dans votre fichier /etc/ssh/sshd_config et qu'elles sont décommentées puis relancez ssh

  PAMAuthenticationViaKbdInt no
  ChallengeResponseAuthentication no

Il ne devrait pas y avoir d'autre entrée PAMAuthentificationViaKbdInt ou ChallengeResponseAuthentication dans sshd_config.

Ceci conclut la section vulnérabilité de ce bulletin. La suite contient les notes de publication du paquet OpenSSH 3.4 et la fonction de séparation des droits. Les URL pour les paquets OpenSSH 3.4 se trouvent en bas de la page.

Quelques détails sur les conséquences possibles de cette mise à jour :

  • Ce paquet installe un nouveau compte appelé « sshd » qui est employé dans le code de séparation des droits. Si aucun compte sshd n'existe, le paquet essayera d'en créer un. Si un compte existe déjà, il sera réemployé. Si vous ne souhaitez pas que cela arrive, vous devrez le corriger à la main.
  • (Valable uniquement pour Potato) Cette mise à jour ajoute un rétroportage de la version 0.9.6c de la bibliothèque SSL. Ce qui signifie que vous devrez également mettre à jour le paquet libssl0.9.6.
  • (Valable uniquement pour Potato) Cette mise à jour utilise par défaut la version 2 du protocole SSH (même s'il est configuré pour supporter la version 1 du protocole SSH). Ceci peut casser les configurations existantes qui utilisent l'authentification RSA. Vous devrez soit :
    • ajouter -1 à l'invocation de la commande ssh pour continuer à utiliser la version 1 du protocole SSH et votre clé actuelle, ou
    • modifier la ligne Protocol dans le fichier /etc/ssh/ssh_config et/ou /etc/ssh/sshd_config pour "Protocol 1,2" pour essayer d'utiliser la version 1 du protocole avant d'essayer la version 2, ou
    • créer de nouvelles clés rsa ou dsa pour SSH protocole 2
  • sshd active par défaut la séparation des droits, même si vous ne l'activez pas de façon explicite dans le fichier /etc/ssh/sshd_config.
  • le recours à rsh n'est plus possible.
  • (Valable uniquement pour Potato) La séparation des droits ne fonctionne pas encore avec les noyaux Linux 2.0.
  • La séparation des droits ne fonctionne pas encore avec l'authentification PAM employant le mécanisme de clavier interactif (KeyboardInteractive mechanism).
  • La séparation des droits empêche le fonctionnement de certains modules PAM qui sont censés fonctionner avec les privilèges du root.
  • Si à cause d'une des raisons évoquée ci-dessus, vous ne pouvez pas dans l'immédiat utiliser la séparation des droits vous pouvez la désactiver en ajoutant « UsePrivilegeSeparation no » dans votre fichier /etc/ssh/sshd_config.

Voici quelques éléments des paquets OpenSSH 3.3p1 qui ont été corrigés dans ce bulletin (Changelog Partiel) :

  • (Valable uniquement pour Potato) La réponse à la question d'installation « Souhaitez-vous utiliser la version 2 du protocole par défaut, n'est plus « Oui » par défaut pour les paquets Potato. Les utilisateurs qui répondraient « Oui » à cette question et choisiraient également de régénérer leur fichier sshd_config constateront qu'ils ne peuvent désormais plus se connecter à leur serveur grâce au protocole 1. Regardez /usr/doc/ssh/README.Debian pour des instructions sur la façon d'activer le protocole 1, si vous vous trouvez dans cette situation. Étant donné que la réponse par défaut est « Non », cela ne devrait plus poser problème pour les futures mises à jour à la version 1.2.3.
  • (Valable uniquement pour Potato) le paquet ssh n'entre plus en conflit avec rsh-server, et ne fournit plus d'alternatives à rsh.
  • L'installation n'échoue plus si les utilisateurs choisissent de générer des clés pour la version 1 du protocole.

Encore une fois, nous regrettons d'avoir publié des paquets avec des changements profonds, en les testant moins bien qu'à notre habitude ; en donnant la sévérité probable et la nature non spécifique de la menace d'origine, nous avons décidé que le meilleur moyen de servir nos utilisateurs était de mettre à disposition des paquets aussi rapidement que possible. Nous vous fournirons des informations complémentaires dès que nous en aurons, et nous continuerons à travailler sur les problèmes auxquels vous êtes confrontés.

Corrigé dans :

Debian GNU/Linux 2.2 (potato)

Source :
http://security.debian.org/pool/updates/main/o/openssh/openssh_3.4p1.orig.tar.gz
http://security.debian.org/pool/updates/main/o/openssh/openssh_3.4p1-0.0potato1.dsc
http://security.debian.org/pool/updates/main/o/openssh/openssh_3.4p1-0.0potato1.diff.gz
http://security.debian.org/pool/updates/main/o/openssl/openssl_0.9.6c.orig.tar.gz
http://security.debian.org/pool/updates/main/o/openssl/openssl_0.9.6c-0.potato.1.diff.gz
http://security.debian.org/pool/updates/main/o/openssl/openssl_0.9.6c-0.potato.1.dsc
Composant indépendant de l'architecture :
http://security.debian.org/pool/updates/main/o/openssl/ssleay_0.9.6c-0.potato.1_all.deb
alpha (DEC Alpha):
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0potato1_alpha.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0potato1_alpha.deb
http://security.debian.org/pool/updates/main/o/openssl/libssl0.9.6_0.9.6c-0.potato.1_alpha.deb
http://security.debian.org/pool/updates/main/o/openssl/openssl_0.9.6c-0.potato.1_alpha.deb
http://security.debian.org/pool/updates/main/o/openssl/libssl-dev_0.9.6c-0.potato.1_alpha.deb
arm (ARM):
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0potato1_arm.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0potato1_arm.deb
http://security.debian.org/pool/updates/main/o/openssl/libssl0.9.6_0.9.6c-0.potato.1_arm.deb
http://security.debian.org/pool/updates/main/o/openssl/libssl-dev_0.9.6c-0.potato.1_arm.deb
http://security.debian.org/pool/updates/main/o/openssl/openssl_0.9.6c-0.potato.1_arm.deb
i386 (Intel IA32):
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0potato1_i386.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0potato1_i386.deb
http://security.debian.org/pool/updates/main/o/openssl/libssl-dev_0.9.6c-0.potato.1_i386.deb
http://security.debian.org/pool/updates/main/o/openssl/libssl0.9.6_0.9.6c-0.potato.1_i386.deb
http://security.debian.org/pool/updates/main/o/openssl/openssl_0.9.6c-0.potato.1_i386.deb
powerpc (PowerPC):
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0potato1_powerpc.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0potato1_powerpc.deb
http://security.debian.org/pool/updates/main/o/openssl/openssl_0.9.6c-0.potato.1_powerpc.deb
http://security.debian.org/pool/updates/main/o/openssl/libssl-dev_0.9.6c-0.potato.1_powerpc.deb
http://security.debian.org/pool/updates/main/o/openssl/libssl0.9.6_0.9.6c-0.potato.1_powerpc.deb
sparc (Sun SPARC/UltraSPARC):
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0potato1_sparc.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0potato1_sparc.deb
http://security.debian.org/pool/updates/main/o/openssl/libssl-dev_0.9.6c-0.potato.1_sparc.deb
http://security.debian.org/pool/updates/main/o/openssl/libssl0.9.6_0.9.6c-0.potato.1_sparc.deb
http://security.debian.org/pool/updates/main/o/openssl/openssl_0.9.6c-0.potato.1_sparc.deb

Debian GNU/Linux 3.0 (woody)

Source :
http://security.debian.org/pool/updates/main/o/openssh/openssh_3.4p1-0.0woody1.dsc
http://security.debian.org/pool/updates/main/o/openssh/openssh_3.4p1.orig.tar.gz
http://security.debian.org/pool/updates/main/o/openssh/openssh_3.4p1-0.0woody1.diff.gz
alpha (DEC Alpha):
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0woody1_alpha.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0woody1_alpha.deb
arm (ARM):
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0woody1_arm.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0woody1_arm.deb
hppa (HP PA RISC):
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0woody1_hppa.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0woody1_hppa.deb
i386 (Intel IA32):
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0woody1_i386.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0woody1_i386.deb
ia64 (Intel IA64):
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0woody1_ia64.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0woody1_ia64.deb
m68k (Motorola Mc680x0):
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0woody1_m68k.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0woody1_m68k.deb
mips (SGI MIPS):
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0woody1_mips.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0woody1_mips.deb
mipsel (SGI MIPS (Little Endian)):
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0woody1_mipsel.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0woody1_mipsel.deb
powerpc (PowerPC):
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0woody1_powerpc.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0woody1_powerpc.deb
s390 (IBM S/390):
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0woody1_s390.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0woody1_s390.deb
sparc (Sun SPARC/UltraSPARC):
http://security.debian.org/pool/updates/main/o/openssh/ssh_3.4p1-0.0woody1_sparc.deb
http://security.debian.org/pool/updates/main/o/openssh/ssh-askpass-gnome_3.4p1-0.0woody1_sparc.deb

Les sommes MD5 des fichiers indiqués sont disponibles sur la page originale de l'alerte de sécurité. (DSA-134-2) (DSA-134-3) (DSA-134-4)