Aviso de seguridad de Debian

DSA-134-4 ssh -- explotación remota

Fecha del informe:
24 de jun de 2002
Paquetes afectados:
ssh
Vulnerable:
Referencias a bases de datos de seguridad:
En la base de datos de Bugtraq (en SecurityFocus): Id. en BugTraq 5093.
En el diccionario CVE de Mitre: CVE-2002-0640, CVE-2002-0639.
Notas y avisos de incidentes y vulnerabilidades en CERT: CA-2002-18, VU#369347.
Información adicional:

La ISS X-Force publicó un aviso sobre una «Vulnerabilidad Remota en el "Challenge"» en OpenSSH. Desafortunadamente, el aviso era incorrecto en algunos puntos, lo que condujo a una confusión generalizada sobre el impacto de esta vulnerabilidad. Ninguna versión de OpenSSH en Debian se ve afectada por los métodos de autentificación SKEY y BSD_AUTH descritos en el aviso de ISS. Sin embargo, Debian incluye servidores OpenSSH con la característica PAM descrita como vulnerable en el aviso posterior enviado por el equipo de OpenSSH. (Esta característica vulnerable se refiere a la autentificación mediante PAM usando el mecanismo de teclado interactivo [kbdint]). Esta vulnerabilidad afecta a las versiones OpenSSH 2.3.1 a 3.3. No se conoce aún nada que explote la vulnerabilidad de PAM/kbdint, pero los detalles ya son de dominio público. Todas estas vulnerabilidades están resueltas en OpenSSH 3.4.

Además de las correcciones a las vulnerabilidades descritas anteriormente, nuestros paquetes de OpenSSH versión 3.3 y superiores incluyen la nueva característica de separación de privilegios de Niels Provos, que modifica ssh para que use un proceso aparte, sin privilegios, para realizar la mayoría del trabajo. Las vulnerabilidades en las partes sin privilegios de OpenSSH supondrán un compromiso en una cuenta sin privilegios restringida a un entorno chroot vacío, en lugar de un compromiso directo sobre root. La separación de privilegios debería ayudar a mitigar los riesgos de cualquier compromiso futuro en OpenSSH.

Debian 2.2 (potato) salió con un paquete ssh basado en OpenSSH 1.2.3, y no es vulnerable a los fallos descritos en este aviso. Los usuarios que aún tengan funcionando un paquete ssh versión 1.2.3 no necesitan actualizar de forma inmediata a OpenSSH 3.4. Los usuarios que ya actualizaron los paquetes de OpenSSH a la versión 3.3 publicadas junto a las anteriores iteraciones del DSA-134 deberían actualizar a la nueva versión 3.4 de los paquetes de OpenSSH, ya que la versión 3.3 era vulnerable. Sugerimos a los usuarios que estén ejecutando OpenSSH 1.2.3 que consideren migrar a OpenSSH 3.4 para aprovechar la ventaja que supone la característica de separación de privilegios. (Sin embargo, repetimos, no tenemos constancia específica de ninguna vulnerabilidad en OpenSSH 1.2.3. Por favor, lea cuidadosamente las notas de publicación antes de actualizar). Recomendamos que cualquier usuario que esté ejecutando una versión 2.0 o superior de OpenSSH en potato, pase a OpenSSH 3.4.

La versión actual de Debian en pre-publicación (woody) incluye un paquete OpenSSH versión 3.0.2p1 (ssh), que es vulnerable al problema de PAM/kbdint descrito anteriormente. Recomendamos a los usuarios que actualicen a OpenSSH 3.4 y habiliten la separación de privilegios. Por favor, lea actualmente las notas de publicación antes de actualizar. Se está trabajando en paquetes actualizados de ssh-krb5 (un paquete de OpenSSH que incluye autentificación mediante kerberos). Los usuarios que no puedan actualizar sus paquetes de OpenSSH en este momento, pueden evitar las vulnerabilidades conocidas descativando las características vulnerables: asegúrse de que las siguientes líneas se encuentran en /etc/ssh/sshd_config, sin comentar, y reinicie ssh

  PAMAuthenticationViaKbdInt no
  ChallengeResponseAuthentication no

No debería haber otras entradas referentes a PAMAuthenticationViaKbdInt o ChallengeResponseAuthentication en sshd_config.

Esto concluye la sección de vulnerabilidades en este aviso. Lo que sigue son las notas de publicación relacionadas con el paquete OpenSSH 3.4 y la característa de separación de privilegios. Las URL hacia los pquetes de OpenSSH 3.4 se encuentran al final de la página.

Algunas notas sobre posibles cuestiones relativas a esta actualización:

  • Este paquete introduce una nueva cuenta llamada `sshd' que se usa en el código de separación de privilegios. Si no existe una cuenta sshd, el paquete intentará crearla. Si la cuenta existe, será reutilizada. Si no quiere que esto suceda, tendrá que corregirlo de forma manual.
  • (relevante sólo para potato) Esta actualización incluye una adaptación retroactiva de la biblioteca SSL 0.9.6c. Esto significa que tendrá que actualizar también el paquete libssl0.9.6.
  • (relevante sólo para potato) Esta actualización usa de forma predeterminada la versión 2 del protocolo SSH (incluso si el demonio está configurado para usar la versión 1). Esto puede hacer que dejen de funcionar las configuraciones que usen la autentificación RSA. Puede resolverlo de varias formas:
    • añada -1 a la invocación de ssh para seguir usando el protocolo 1 de SSH y las claves de que ya dispone, o
    • cambiar la línea Protocol en /etc/ssh/ssh_config o /etc/ssh/sshd_config a "Protocol 1,2" para intentar usar el protocolo 1 antes del protocolo 2, o
    • crear nuevas claves rsa y dsa para el protocolo 2 de SSH
  • sshd activa de forma predeterminada la separación de privilegios, aunque no lo active explícitamente en /etc/ssh/sshd_config.
  • Ya no está disponible la opción de ssh para trabajar como rsh como comportamiento de respaldo.
  • (relevante sólo para potato) La separación de privilegios no funciona actualmente en los núcleos Linux 2.2.
  • La separación de privilegios no funciona actualmente en conjunto con la autentificación PAM mediante el mecanismo KeyboardInteractive.
  • La separación de privilegios provoca fallos en algunos módulos PAM que esperan encontrarse con privilegios de root.
  • Si por algunar razón no pudiera usar la separación de privilegios en este momento debido a alguno de los problemas descritos anteriormente, puede desactivarla añadiendo "UsePrivilegeSeparation no" al fichero /etc/ssh/sshd_config.

Problemas de los paquetes de OpenSSH 3.3p1 previos corregidos en este aviso (no es un registro de cambios completo):

  • (relevante sólo para potato) la pregunta «do you want to allow protocol 2 only» durante la instalación ya no es "yes" por defecto en los paquetes de potato. Los usuarios que contestaron "yes" a esta pretunga y escogieron regenerar su fichero sshd_config econtrarán que yua no pueden conectar al servidor mediante el protocolo 1. Lea /usr/doc/ssh/README.Debian si desea instrucciones para habilitar el protocolo 1 si se ve en esa situación. Debido a que la opción predeterminada para Potato es "no" ahora, no debería ser motivo de problemas para la gente que actualice en el futuro partiendo de la versión 1.2.3.
  • (relevante sólo para potato) el paquete ssh ya no tiene conflictos rsh-server, ni proporciona una alternativa a rsh
  • la instalación ya no falla si los usuarios escogen generar claves para el protocolo 1.

De nuevo, lamentamos haber tenido que distribuir paquetes con grandes cambios y menos comprobaciones que las que hacemos habitualmente. Dado el peligro potencial y la naturaleza no específica de la amenaza original, decidimos que nuestros usuarios estarían mejor protegidos teniendo disponibles los paquetes para su evaluación lo más pronto posible. Enviaremos información adicional en cuanto la tengamos, y continuaremos trabajando en los problemas pendientes.

Arreglado en:

Debian GNU/Linux 2.2 (potato)

Fuentes:
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
Componentes independientes de la arquitectura:
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)

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

Las sumas MD5 de los ficheros que se listan están disponibles en el aviso original. (DSA-134-2) (DSA-134-3) (DSA-134-4)