6069007 2001-02-07 19:33 -0300  /53 rader/ Iván_Arce <core.lists.bugtraq@CORE-SDI.COM>
Sänt av: joel@lysator.liu.se
Importerad: 2001-02-08  21:25  av Brevbäraren (som är implementerad i) Python
Extern mottagare: BUGTRAQ@SECURITYFOCUS.COM
Externa svar till: core.lists.bugtraq@CORE-SDI.COM
Mottagare: Bugtraq (import) <15297>
Kommentar till text 6064101 av Iván_Arce <core.lists.bugtraq@CORE-SDI.COM>
Ärende: Re: [CORE SDI ADVISORY] SSH1 session key recovery vulnerability
------------------------------------------------------------
 (errata)
From: Iván_Arce <core.lists.bugtraq@CORE-SDI.COM>
To: BUGTRAQ@SECURITYFOCUS.COM
Message-ID: <006801c09156$30dc1ac0$2e58a8c0@ffornicario>

Just a small correction to the advisory just released:

>  http://www.core-sdi.com/bid/1949
>  http://www.core-sdi.com/bid/1426
>  http://www.core-sdi.com/bid/1323
>  http://www.core-sdi.com/bid/1006
>  http://www.core-sdi.com/bid/843
>  http://www.core-sdi.com/bid/660
>

should be:

  http://www.securityfocus.com/bid/1949
  http://www.securityfocus.com/bid/1426
  http://www.securityfocus.com/bid/1323
  http://www.securityfocus.com/bid/1006
  http://www.securityfocus.com/bid/843
  http://www.securityfocus.com/bid/660

sorry for the cut&paste glitch.
-ivan

---

"Understanding. A cerebral secretion that enables one having it to know
 a house from a horse by the roof on the house,
 Its nature and laws have been exhaustively expounded by Locke,
 who rode a house, and Kant, who lived in a horse." - Ambrose Bierce


==================[ CORE Seguridad de la Informacion S.A. ]=========
Iván Arce
Presidente
PGP Fingerprint: C7A8 ED85 8D7B 9ADC 6836  B25D 207B E78E 2AD1 F65A
email   : iarce@core-sdi.com
http://www.core-sdi.com
Florida 141 2do cuerpo Piso 7
C1005AAG Buenos Aires, Argentina.
Tel/Fax : +(54-11) 4331-5402
=====================================================================





--- For a personal reply use iarce@core-sdi.com
(6069007) ------------------------------------------
6070724 2001-02-09 09:38 +0100  /346 rader/ Kent Engström <kent@unit.liu.se>
Sänt av: kent@unit.liu.se
Importerad: 2001-02-09  09:38  av Brevbäraren (som är implementerad i) Python
Extern mottagare: net@liu.se
Extern mottagare: unit@unit.liu.se
Extern mottagare: cra.erf@lyskom.lysator.liu.se
Extern kopiemottagare: abuse@liu.se
Externa svar till: abuse@liu.se
Mottagare: Cracking erfarenhetsutbyte <10390>
Kommentar till text 6069944 av Iván_Arce <core.lists.bugtraq@CORE-SDI.COM>
Mottagare: Root (@) Nationernas Hus <14445>
    Sänt:     2001-02-09 09:38
Mottagare: Importmöte (för) Petter Larsson <287>
    Sänt:     2001-02-09 09:38
Ärende: ALLVARLIGARE BUGG I SSH1 --- Re: [CORE SDI ADVISORY] SSH1 CRC-32 compensation attack detector vulnerability
------------------------------------------------------------
From: kent@unit.liu.se (Kent Engström)
To: net@liu.se, unit@unit.liu.se, cra.erf@lyskom.lysator.liu.se
Cc: abuse@liu.se
Message-ID: <m3ae7w1cak.fsf@ceres.unit.liu.se>

I onsdags kväll kom en rapport (också via CORE SDI) om en bugg i
SSH. Nu är det dags för nästa, och den här gången är det allvarligare.
Se rapporten nedan!


Rekommendationer:

- Kör senaste släppta OpenSSH, version 2.3.0 (heter 2.3.0p1 i den
  version som är portad från OpenBSD till andra Unixar) . Se
  www.openssh.com för källkod, RPM-filer för Linux osv. Var beredd att
  uppgradera till kommande versioner av OpenSSH. Se dock upp för
  "development snapshot" 2.3.1, som innehåller en annan bugg.

- Om ni kör "kommersiella SSH": stäng av stöd för protokollversion 1
  (om det är möjligt beror såklart på vilka protokollversioner era
  klienter klarar).

- Annars: läs nedan för att se vad er leverantör rekommenderar.


Iván Arce <core.lists.bugtraq@CORE-SDI.COM> writes:

>                                              CORE SDI
>                                   http://www.core-sdi.com
>              SSH1 CRC-32 compensation attack detector vulnerability
> 
> 
> Date Published: 2001-02-08
> 
> Advisory ID: CORE-20010207
> 
> Bugtraq ID: 2347
> 
> CVE CAN: CAN-2001-0144
> 
> Title: SSH1 CRC-32 compensation attack detector vulnerability
> 
> Class: Boundary Error Condition
> 
> Remotely Exploitable: Yes
> 
> Locally Exploitable: Yes
> 
> Release Mode: FORCED RELEASE
> 
> Vulnerability Description:
> 
>  SSH is a widely used client-server application for authentication
>  and encryption of network communications.
>  In 1998 Ariel Futoransky and Emiliano Kargieman [2] discovered
>  a design flaw in the SSH1 protocol (protocol 1.5) that could
>  lead an attacker to inject malicious packets into an SSH encrypted
>  stream that would allow execution of arbitrary commands on
>  either client or server.
>  The problem was not fixable without breaking the protocol 1.5
>  semantics and thus a patch was devised that would detect an
>  attack that exploited the vulnerability found. The attack detection
>  is done in the file deattack.c from the SSH1 source distribution.
> 
>  A vulnerability was found in the attack detection code that could
>  lead to the execution of arbitrary code in SSH servers and clients
>  that incorporated the patch.
> 
> Vulnerable Packages/Systems:
> 
>  This problem affects both SSH servers and clients.
> 
>  All versions of SSH supporting the protocol 1 (1.5) that use the
>  CRC compensation attack detector are vulnerable
>  See below for vendor specific information.
> 
>  OpenSSH
> 
>   OpenSSH versions prior to  2.3.0 are vulnerable.
> 
>   OpenSSH versions 2.3.0 and above are not vulnerable, source changes
>   in deattack.c that fix this problem were incorporated into the
>   source tree on October 31st, 2000.
> 
>  SSH.com
>   ssh-1.2.24 up to , and including,  ssh-1.2.31 are vulnerable.
> 
>   Versions prior to 1.2.24 did not include the CRC compensation
>   attack detector.
>   The official response from SSH.com follows:
>    - SSH-2.x is not vulnerable
>    - SSH1 is deprecated, and not supported, upgrade to SSH2
>    - Nonetheless the proposed patch has been applied to
>      the ssh-1.2.x source tree, future releases of ssh-1.2.x will
>      have the bug closed.
> 
>  F-Secure SSH
>   F-Secure SSH-1.3.x is vulnerable.
>   Contact the vendor for a fix.
> 
>  AppGate
>   The default configuration of the AppGate server is not
>   vulnerable since it has SSH-1 support disabled. However
>   customers who need ssh1-support can contact
>   support@appgate.com to get patches.
> 
>  Mindbright
>   The MindtTerm client does not have this vulnerability.
> 
>  TTSSH
>   Not vulnerable.
>   All version that incorporated the attack detector
>   are not vulnerable.
> 
>  LSH
>   Not. vulnerable.
>   LSH does not support SSH protocol 1.
> 
>  JavaSSH
>   Not vulnerable.
>   The Java Telnet/SSH Applet (http://www.mud.de/se/jta/)
>   does not include CRC attack detection.
>   A security note regarding Java SSH plugin can be found on:
>    http://www.mud.de/se/jta/doc/plugins/SSH.html
> 
>  OSSH (by Bjoern Groenvall)
>   OSSH 1.5.7 and below is vulnerable. The problem has been fixed
>   in version 1.5.8
> 
>  Cisco SSH
>   Cisco SSH does not appear to be vulnerable.
> 
> Solution/Vendor Information/Workaround:
> 
>  The patch included should be applied to the file deattack.c
>  from the ssh-1.2.31 (and below) source distribution.
> 
>  Contact your SSH vendor for a fix if source code is not
>  available.
> 
>  Additionally, advisories and information on security issues
>  in SSH can be obtained from:
> 
>  http://www.core-sdi.com/advisories/ssh1_sessionkey_recovery.htm
>  http://www.core-sdi.com/advisories/buffer_over_ing.htm
>  http://www.core-sdi.com/advisories/ssh-advisory.htm
>  http://www.securityfocus.com.com/bid/2347
>  http://www.securityfocus.com.com/bid/2222
>  http://www.securityfocus.com.com/bid/2117
>  http://www.securityfocus.com.com/bid/1949
>  http://www.securityfocus.com/bid/1426
>  http://www.securityfocus.com/bid/1323
>  http://www.securityfocus.com/bid/1006
>  http://www.securityfocus.com/bid/843
>  http://www.securityfocus.com/bid/660
> 
> 
> --------------------- begin dettack patch ------------------
> 
> This is the patch for ssh-1.2.31 package.
> 
> Using the patch:
> 
> Copy the ssh-1.2.31.tar.gz package and the ssh-1.2.31-deattack.patch
> in a directory.
> 
> Decompress the ssh-1.2.31.tar.gz package:
>  tar xzvf ssh-1.2.31.tar.gz
> 
> Apply the patch:
>  patch < ssh-1.2.31-deattach.patch
> 
> Compile the ssh package.
> 
> --- ssh-1.2.31/deattack.c-old Wed Feb  7 19:45:16 2001
> +++ ssh-1.2.31/deattack.c Wed Feb  7 19:54:11 2001
> @@ -79,7 +79,7 @@
>  detect_attack(unsigned char *buf, word32 len, unsigned char *IV)
>  {
>    static word16  *h = (word16 *) NULL;
> -  static word16   n = HASH_MINSIZE / HASH_ENTRYSIZE;
> +  static word32   n = HASH_MINSIZE / HASH_ENTRYSIZE;
>    register word32 i, j;
>    word32          l;
>    register unsigned char *c;
> 
> --------------------- end deattack patch -------------------
> 
> 
> Vendors notified on: 2001-02-07
> 
>  This advisory has been released early due to the
>  disclosure of information regarding the problem
>  in public forums.
> 
> Credits:
> 
>  This vulnerability was found by Michal Zalewski of the Bindview RAZOR Team.
> 
>  We thank  Scott Blake and Steve Manzuik of the Bindview RAZOR Team for
>  their cooperation coordinating the report and release process of this
>  advisory.
> 
>  This advisory and other CORE SDI security advisories can be obtained from
>    http://www.core-sdi.com/publications.htm
> 
> Technical Description - Exploit/Concept Code:
> 
>  Most SSH distributions incorporated the file deattack.c
>  released by CORE SDI in 1998. The file implements an
>  algorithm to detect attempts to exploit the CRC-32
>  compensation attack by passing the ssh packets received
>  from the network to the detect_attack() function in
>  deattack.c
> 
>  ...
> /*
>    detect_attack
>    Detects a crc32 compensation attack on a packet
>  */
> int
> detect_attack(unsigned char *buf, word32 len, unsigned char *IV)
> {
>     static word16  *h = (word16 *) NULL;
> (*) static word16   n = HASH_MINSIZE / HASH_ENTRYSIZE;
>     register word32 i, j;
>     word32          l;
>  ...
> 
>  buf is the ssh packet received, len is the length of that packet
>  The received packet is comprised of several blocks of ciphertext
>  of size SSH_BLOCKSIZE and each of them is checked against the
>  others to verify that different packets dont have the same CRC
>  value, such behavior is symptom of an attack.
>  The detection is done using a hash table that is dynamically
>  allocated based on the size of the received packet.
> 
>  ...
>   for (l = n; l < HASH_FACTOR(len / SSH_BLOCKSIZE); l = l << 2);
> 
>   if (h == NULL)
>   {
>     debug("Installing crc compensation attack detector.");
>     n = l;
>     h = (word16 *) xmalloc(n * sizeof(word16));
>   } else
>  ...
> 
>  Due to the improper declaration of 'n' above (it should be a word32)
>  by sending crafted large ssh packets (length > 2^16) it is possible
>  to make the vulnerable code perform a call to xmalloc() with an
>  argument of 0, which will return a pointer into the program's address
>  space.
>  It is worth mentioning that existing standards promote two possible
>  behaviours for malloc() when it is called with an argument of 0:
>  - Failure, returning NULL
>  - Success, returning a valid address pointing at a zero-sized object.
>  Most modern systems implement the later behaviour and are thus vulnerable.
>  Systems which have the older behaviour will abort the connection due
>  to checks within xmalloc()
> 
>  It is then possible to abuse the following code to in order write to
>  arbitrary memory locations in the program (ssh server or client) address
>  space, thus allowing an attacker to execute arbitrary code on the
> vulnerable
>  machine, see lines marked with (*):
> 
>   for (c = buf, j = 0; c < (buf + len); c += SSH_BLOCKSIZE, j++)
>   {
> (*)  for (i = HASH(c) & (n - 1); h[i] != HASH_UNUSED;
>          i = (i + 1) & (n - 1))
>     {
>       if (h[i] == HASH_IV)
>       {
>         if (!CMP(c, IV))
>         {
>           if (check_crc(c, buf, len, IV))
>             return (DEATTACK_DETECTED);
>           else
>             break;
>         }
>       } else if (!CMP(c, buf + h[i] * SSH_BLOCKSIZE))
>       {
>         if (check_crc(c, buf, len, IV))
>           return (DEATTACK_DETECTED);
>         else
>           break;
>       }
>     }
> (*)   h[i] = j;
>   }
> 
>  A would-be attacker does not need to authenticate to the SSH server first
>  or to have the packets encrypted in a meaningful way to perform the attack.
>  Even if that was the case, the session key used for encrypting is choosen
>  by the ssh client and it is therefore trivial to implement an exploit (in
>  the sense of the cryptography knowledge required to do it). However,
>  a small degree of knowledge in exploit code development would be needed
>  to implement a working exploit.
> 
> References
> 
>  [1] http://www.core-sdi.com/soft/ssh/ssh.pdf
> 
> Copyright notice
> 
>  The contents of this advisory are copyright (c) 2000 CORE SDI Inc. and may
>  be distributed freely provided that no fee is charged for this distribution
>  and the authors are given credit.
> 
>  All the product names mentioned herein are trademarks of their respective
>  owners.
> 
> $Id: SSH1-deattack-advisory.txt,v 1.9 2001/02/08 22:46:53 iarce Exp $
> 
> ---
> 
> "Understanding. A cerebral secretion that enables one having it to know
>  a house from a horse by the roof on the house,
>  Its nature and laws have been exhaustively expounded by Locke,
>  who rode a house, and Kant, who lived in a horse." - Ambrose Bierce
> 
> 
> ==================[ CORE Seguridad de la Informacion S.A. ]=========
> Iván Arce
> Presidente
> PGP Fingerprint: C7A8 ED85 8D7B 9ADC 6836  B25D 207B E78E 2AD1 F65A
> email   : iarce@core-sdi.com
> http://www.core-sdi.com
> Florida 141 2do cuerpo Piso 7
> C1005AAC Buenos Aires, Argentina.
> Tel/Fax : +(54-11) 4331-5402
> =====================================================================
> 
> 
> 
> --- For a personal reply use iarce@core-sdi.com
> 

-- 
Kent Engström,		Linköping University Incident Response Team
kent@unit.liu.se  	abuse@liu.se
+46 13 28 1744

UNIT, Linköping University; SE-581 83  LINKÖPING; SWEDEN
(6070724) ------------------------------------------
Kommentar i text 6070818 av Kent Engström <kent@unit.liu.se>
Kommentar i text 6070900
Kommentar i text 6070901
Kommentar i text 6071414 av Simon B ((ODD), D1A)