Säkerhetsbulletin från Debian

DSA-134-4 ssh -- fjärrattack

Rapporterat den:
2002-06-24
Berörda paket:
ssh
Sårbara:
Ja
Referenser i säkerhetsdatabaser:
I Bugtraq-databasen (hos SecurityFocus): BugTraq-id 5093.
I Mitres CVE-förteckning: CVE-2002-0640, CVE-2002-0639.
CERTs information om sårbarheter, bulletiner och incidenter: CA-2002-18, VU#369347.
Ytterligare information:

ISS X-Force släppte en bulletin om ”fjärranropssårbarhet” i OpenSSH: Tyvärr var bulletinen felaktig på några punkter, vilket ledde till utbredd förvirring om hur allvarlig denna sårbarhet var. Ingen version av OpenSSH på Debian påverkas av SKEY- och BSD_AUTH-autentiseringsmetoderna som beskrivs i ISS-bulletinen. Debian innehåller dock OpenSSH-servrar med den PAM-funktion som beskrivs i en senare bulletin från OpenSSH-gruppen. (Denna sårbarhet är autentisering med PAM via en tangentbordsinteraktiv mekanism [kbdint].) Denna sårbarhet påverkar OpenSSH version 2.3.1 till 3.3. Inget sätt att utnyttja PAM-/kbdint-sårbarheten är för närvarande känd, men detaljerna är allmänt kända. Alla dessa sårbarheter rättades i OpenSSH 3.4.

Förutom de rättade sårbarheter som beskrivs ovan innehåller våra OpenSSH-paket version 3.3 eller högre den nya privilegiedelningsfunktionen av Niels Provos, vilken ändrar ssh så att det använder en icke-privilegierad process för att hantera det mesta. Sårbarheter i den icke-privilegierade delen av OpenSSH leder till att ett icke-privilegierat konto som är begränsat till en tom chroot komprometteras, istället för en direkt root-kompromettering. Privilegiedelningen mildrar risken hos framtida OpenSSH-komprometteringar.

Med Debian 2.2 (potato) kom ett ssh-paket baserat på OpenSSH 1.2.3, och är inte sårbart för de sårbarheter som beskrivits i denna bulletin. Användare som fortfarande kör ett ssh-paket av version 1.2.3 behöver inte omedelbart uppgradera till OpenSSH 3.4. Användare som uppgraderade till de OpenSSH version 3.3-paket som släpptes med tidigare versioner av DSA-134 bör uppgradera till de nya OpenSSH version 3.4-paketen, då version 3.3-paketen är sårbara. Vi föreslår att användare som kör OpenSSH 1.2.3 bör överväga att byta till OpenSSH 3.4 för att dra nytta av privilegiedelningsfunktionen. (Dock skall vi återigen nämna att vi inte känner till någon sårbarhet i OpenSSH 1.2.3. Läs noggrant genom varningarna nedan innan ni uppgraderar från OpenSSH 1.2.3.) Vi rekommenderar att alla som kör en bakåtanpassad version av OpenSSH 2.0 eller högre på potato uppgraderar till OpenSSH 3.4.

Den aktuella uttestningsutgåvan av Debian (woody) innehåller ett paket med OpenSSH version 3.0.2p1 (ssh), vilket är sårbart för PAM-/kbdint-problemet som beskrivs ovan. Vi rekommenderar att användare uppgraderar till OpenSSH 3.4 och aktiverar privilegiedelning. Läs noggrant genom varningarna nedan innan ni uppgraderar. Uppdaterade paket för ssh-krb5 (ett OpenSSH-paket som stöder autentisering via kerberos) är för närvarande under utveckling. Användare som inte kan uppgradera sina OpenSSH-paket kan gå runt de kända sårbarheterna genom att slå av de sårbara funktionerna: se till att följande rader finns och inte är utkommenterade i /etc/ssh/sshd_config och starta om ssh:

  PAMAuthenticationViaKbdInt no
  ChallengeResponseAuthentication no

Det bör inte finnas några fler PAMAuthenticationViaKbdInt eller ChallengeResponseAuthentication i sshd_config.

Härmed slutar den del av bulletinen som hanterar sårbarheten. Det som följer är versionsfakta gällande OpenSSH 3.4-paketet och privilegiedelningsfunktionen. URLer för OpenSSH 3.4-paketen finns nederst.

Information om möjliga problem med denna uppgradering:

  • Paketet introducerar ett nytt konto vid namn ”sshd” som används av privilegiedelningskoden. Om det inte finns något sshd-konto kommer paketet försöka skapa ett. Om kontot redan finns kommer det att återanvändas. Om du inte vill att detta skall ske måste du ändra det manuellt.
  • (gäller endast potato) Denna uppdatering lägger till en bakåtanpassad version 0.9.6c av SSL-biblioteket. Detta betyder att du även måste uppgradera ssl-paketet.
  • (gäller endast potato) Denna uppdatering använder som standard version 2 av SSH-protokollet, något som kan förstöra för existerande system där RSA-autentisering används. Du måste antingen
    • lägga till -1 till ssh:s kommandorad för att fortsätta använda SSH-protokoll 1 och dina existerande nycklar, eller
    • ändra Protocol-raden i /etc/ssh/ssh_config och/eller /etc/ssh/sshd_config till ”Protocol 1,2” för att försöka med protokoll 1 före protokoll 2, eller
    • skapa nya rsa- eller dsa-nycklar för SSH-protokoll 2.
  • sshd använder privilegiedelning som standard, även om du inte explicit aktiverar det i /etc/ssh/sshd_config.
  • Funktionen att falla tillbaka från ssh till rsh är inte längre tillgänglig.
  • (gäller endast potato) Privilegiedelning fungerar för närvarande inte för Linux 2.0-kärnor.
  • Privilegiedelning fungerar för närvarande inte med PAM-autentisering via KeyboardInteractive-mekanismen.
  • Privilegiedelning gör att vissa PAM-moduler som förväntar sig att köras som root slutar fungera.
  • Om du av någon anledning inte kan använda privilegiedelning på grund av något av problemen som beskrivs ovan kan du återgå till tidigare beteende genom att lägga in ”UsePrivilegeSeparation no” i din /etc/ssh/sshd_config-fil.

Några problem med tidigare openssh 3.3p1-paket som rättats i denna bulletin (inte en komplett ändringslogg):

  • (gäller endast potato) installationsfrågan, ”vill du endast tillåta protokoll 2” har inte längre ”ja” som förval för potato-paketen. Användare som svarade ja på denna fråga och även valde att skapa en ny sshd_config-fil upptäckte att de inte längre kunde ansluta mot sina servrar via protokoll 1. Se /usr/doc/ssh/README.Debian för instruktioner om hur man aktiverar protokoll 1 om du hamnat i denna situation. Eftersom förvalet i potatopaketen nu är ”nej” bör detta inte vara ett problem som i framtiden uppgraderar från version 1.2.3.
  • (gäller endast potato) ssh-paketet har ej längre en konflikt mot rsh-server, och tillhandahåller inte heller ett rsh-alternativ.
  • installationen misslyckas inte längre om användaren väljer att generera protokoll 1-nycklar.

Återigen ber vi om ursäkt för att vi måste släppa paket med större ändringar och mindre testning än vad vi normalt gör; givet den möjliga allvarlighetsgraden och icke-specifika natur hos det ursprungliga hotet valde vi att våra användare bäst betjänades genom att ha paket tillgängliga för utvärdering så fort som möjligt. Vi kommer sända ut ytterligare information när den når oss, och kommer fortsätta arbeta på de kvarvarande problemen.

Rättat i:

Debian GNU/Linux 2.2 (potato)

Källkod:
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
Arkitekturoberoende komponent:
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)

Källkod:
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

MD5-kontrollsummor för dessa filer finns i originalbulletinen. (DSA-134-2) (DSA-134-3) (DSA-134-4)