>Number:         179619
>Category:       bin
>Synopsis:       9-STABLE sshd negotiates unsupported cipher
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jun 16 15:00:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Christian Weisgerber
>Release:        FreeBSD 9.1-STABLE amd64
>Organization:
>Environment:
System: FreeBSD lorvorc.mips.inka.de 9.1-STABLE FreeBSD 9.1-STABLE #0 r251468: 
Thu Jun 6 17:02:46 CEST 2013 
na...@lorvorc.mips.inka.de:/usr/obj/usr/src/sys/GENERIC amd64

OpenSSH_6.2p2, OpenSSL 0.9.8y 5 Feb 2013, on FreeBSD 9-STABLE.

This version of OpenSSL does not support AES-GCM, so OpenSSH is built
with #undef OPENSSL_HAVE_EVPGCM there.

>Description:

Let's try to connect to a 9-STABLE box from a host that does support
AES-GCM:

$ ssh -c aes128-...@openssh.com,aes128-ctr lorvorc    
Connection closed by 2001:6f8:124a::5

Odd.

$ ssh -v -c aes128-...@openssh.com,aes128-ctr lorvorc
OpenSSH_6.2, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /home/naddy/.ssh/config
debug1: /home/naddy/.ssh/config line 34: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to lorvorc [2001:6f8:124a::5] port 22.
debug1: Connection established.
debug1: identity file /home/naddy/.ssh/id_rsa type -1
debug1: identity file /home/naddy/.ssh/id_rsa-cert type -1
debug1: identity file /home/naddy/.ssh/id_dsa type -1
debug1: identity file /home/naddy/.ssh/id_dsa-cert type -1
debug1: identity file /home/naddy/.ssh/id_ecdsa type -1
debug1: identity file /home/naddy/.ssh/id_ecdsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version
OpenSSH_6.2_hpn13v11 FreeBSD-20130515
debug1: match: OpenSSH_6.2_hpn13v11 FreeBSD-20130515 pat OpenSSH*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-...@openssh.com <implicit> none
debug1: kex: client->server aes128-...@openssh.com <implicit> none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
Connection closed by 2001:6f8:124a::5

On the 9-STABLE box, auth.log says:

Jun  9 02:39:49 lorvorc sshd[98792]: fatal: matching cipher is not supported: 
aes128-...@openssh.com [preauth]

sshd should not match a cipher it doesn't actually support!

>How-To-Repeat:

See above.

>Fix:

Index: crypto/openssh/myproposal.h
===================================================================
--- crypto/openssh/myproposal.h (revision 251468)
+++ crypto/openssh/myproposal.h (working copy)
@@ -71,10 +71,16 @@
        "ssh-rsa," \
        "ssh-dss"
 
+#ifdef OPENSSL_HAVE_EVPGCM
+# define AESGCM_CIPHER_MODES \
+       "aes128-...@openssh.com,aes256-...@openssh.com,"
+#else
+# define AESGCM_CIPHER_MODES
+#endif
 #define        KEX_DEFAULT_ENCRYPT \
        "aes128-ctr,aes192-ctr,aes256-ctr," \
        "arcfour256,arcfour128," \
-       "aes128-...@openssh.com,aes256-...@openssh.com," \
+       AESGCM_CIPHER_MODES \
        "aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc," \
        "aes192-cbc,aes256-cbc,arcfour,rijndael-...@lysator.liu.se"
 #ifdef NONE_CIPHER_ENABLED


For FreeBSD 9-STABLE, changing the "Ciphers" description in
ssh_config.5 and sshd_config.5 to match might be an additional
consideration.

>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to