OpenBSD Journal

OpenSSH 4.4 released

Contributed by ben on from the ssh-on-my-mind dept.

Darren Tucker wrote in to say:

OpenSSH 4.4 has just been released. It will be available from the mirrors listed at http://www.openssh.com/ shortly.

OpenSSH is a 100% complete SSH protocol version 1.3, 1.5 and 2.0 implementation and includes sftp client and server support.

Once again, we would like to thank the OpenSSH community for their continued support of the project, especially those who contributed code or patches, reported bugs, tested snapshots and purchased T-shirts or posters. T-shirt, poster and CD sales directly support the project. Pictures
and more information can be found at:
http://www.openbsd.org/tshirts.html and
http://www.openbsd.org/orders.html

For international orders use http://https.openbsd.org/cgi-bin/order
and for European orders, use http://https.openbsd.org/cgi-bin/order.eu

Changes since OpenSSH 4.3:
============================

Security bugs resolved in this release:

* Fix a pre-authentication denial of service found by Tavis Ormandy,
that would cause sshd(8) to spin until the login grace time
expired.

* Fix an unsafe signal hander reported by Mark Dowd. The signal
handler was vulnerable to a race condition that could be exploited
to perform a pre-authentication denial of service. On portable
OpenSSH, this vulnerability could theoretically lead to
pre-authentication remote code execution if GSSAPI authentication
is enabled, but the likelihood of successful exploitation appears
remote.

* On portable OpenSSH, fix a GSSAPI authentication abort that could
be used to determine the validity of usernames on some platforms.

This release includes the following new functionality and fixes:

* Implemented conditional configuration in sshd_config(5) using the
"Match" directive. This allows some configuration options to be
selectively overridden if specific criteria (based on user, group,
hostname and/or address) are met. So far a useful subset of post-
authentication options are supported and more are expected to be
added in future releases.

* Add support for Diffie-Hellman group exchange key agreement with a
final hash of SHA256.

* Added a "ForceCommand" directive to sshd_config(5). Similar to the
command="..." option accepted in ~/.ssh/authorized_keys, this forces
the execution of the specified command regardless of what the user
requested. This is very useful in conjunction with the new "Match"
option.

* Add a "PermitOpen" directive to sshd_config(5). This mirrors the
permitopen="..." authorized_keys option, allowing fine-grained
control over the port-forwardings that a user is allowed to
establish.

* Add optional logging of transactions to sftp-server(8).

* ssh(1) will now record port numbers for hosts stored in
~/.ssh/authorized_keys when a non-standard port has been requested.

* Add an "ExitOnForwardFailure" option to cause ssh(1) to exit (with
a non-zero exit code) when requested port forwardings could not be
established.

* Extend sshd_config(5) "SubSystem" declarations to allow the
specification of command-line arguments.

* Replacement of all integer overflow susceptible invocations of
malloc(3) and realloc(3) with overflow-checking equivalents.

* Many manpage fixes and improvements

* New portable OpenSSH-specific features:

- Add optional support for SELinux, controlled using the
--with-selinux configure option (experimental)

- Add optional support for Solaris process contracts, enabled
using the --with-solaris-contracts configure option (experimental)
This option will also include SMF metadata in Solaris packages
built using the "make package" target

- Add optional support for OpenSSL hardware accelerators (engines),
enabled using the --with-ssl-engine configure option.

* Bugs from http://bugzilla.mindrot.org fixed:
#482 - readconf doesn't accept paths with spaces in them.
#906 - syslog messages from sshd [net] lost.
#975 - Kerberos authentication timing can leak information
about account validity.
#981 - Flow stop in SSH2.
#1102 - C program 'write' with zero length hangs.
#1129 - sshd hangs for command-only invocations due to
fork/child signals.
#1131 - error "buffer_append_space:alloc not supported"
#1138 - Passphrase asked for (but ignored) if key file permissions
too liberal..
#1156 - Closes connection after C-c is pressed on QNX.
#1157 - ssh-keygen doesn't handle DOS line breaks.
#1159 - %u and %h not handled in IdentityFile.
#1161 - scp -r fails.
#1162 - Inappropriate sequence of syslog messages.
#1166 - openssh-4.3p1 has some issues compiling.
#1171 - configure can't always figure out LLONG_MAX..
#1173 - scp reports lost connection for very large files.
#1177 - Incorrect sshrc file location in Makefile.in.
#1179 - sshd incorrectly rejects connections due to IP options.
#1181 - configure should detect when openssl-0.9.8x needs -ldl.
#1186 - ssh tries multiple times to open unprotected keys.
#1188 - keyboard-interactive should not allow retry after
pam_acct_mgmt fails.
#1193 - Open ssh will not allow changing of passwords on usernames
greater than 8 characters..
#1201 - Bind address information is not specified in command line
help messages.
#1203 - configure.ac is missing an open [.
#1207 - sshd does not clear unsuccessful login count on
non-interactive logins.
#1218 - GSSAPI client code permits SPNEGO usage.
#1221 - Banner only suppressed at log level = QUIET (used to be
at log level < INFO).

* Fixes to memory and file descriptor leaks reported by the Coverity
static analysis tool

* Fixes to inconsistent pointer checks reported by the Stanford
SATURN tool

Thanks to everyone who has contributed patches, reported bugs and
tested releases.

Checksums:
==========

- SHA1 (openssh-4.4.tar.gz) = 2294b5e5a591420aa05ff607c1890ab622ace878
- SHA1 (openssh-4.4p1.tar.gz) = 6a52b1dee1c2c9862923c0008d201d98a7fd9d6c

Reporting Bugs:
===============

- please read http://www.openssh.com/report.html
and http://bugzilla.mindrot.org/

OpenSSH is brought to you by Markus Friedl, Niels Provos, Theo de Raadt,
Kevin Steves, Damien Miller, Darren Tucker, Jason McIntyre, Tim Rice and
Ben Lindstrom.

(Comments are closed)


Comments
  1. By Anonymous Coward (68.165.27.172) on

    It is my understanding that OpenSSH relies on OpenSSL, but can we really trust OpenSSL? Who controls the OpenSSL organization and who does the code audits? More important, has the OpenSSL code been audited or certified in any way? Too many sensible applications rely on OpenSSL, so the question is: Can we trust OpenSSL?

    Comments
    1. By djm@ (206.59.235.113) on

      > It is my understanding that OpenSSH relies on OpenSSL,
      > but can we really trust OpenSSL? [etc...]

      OpenSSH doesn't trust OpenSSL for anything more than cryptographic primitives. In particular, it avoids its default RSA signature verification code that depends on the OpenSSL ASN.1 code - we use our own minimal implementation instead (ssh-rsa.c).

      IIRC this has saved us from at least two bugs so far: an ASN.1 bug a while ago and the new Bleichenbacher attack.

      Thanks Markus Friedl for this code :)

      Comments
      1. By Anonymous Coward (24.34.57.27) on

        > > It is my understanding that OpenSSH relies on OpenSSL, > > but can we really trust OpenSSL? [etc...] > > OpenSSH doesn't trust OpenSSL for anything more than cryptographic primitives. In particular, it avoids its default RSA signature verification code that depends on the OpenSSL ASN.1 code - we use our own minimal implementation instead (ssh-rsa.c). > > IIRC this has saved us from at least two bugs so far: an ASN.1 bug a while ago and the new Bleichenbacher attack. > > Thanks Markus Friedl for this code :)

        Thank god!

        Comments
        1. By anonymous coward (65.87.1.54) on

          > It is my understanding that OpenSSH relies on OpenSSL,
          > but can we really trust OpenSSL? [etc...]
          >
          > OpenSSH doesn't trust OpenSSL for anything more than cryptographic primitives. In particular, it avoids its default RSA signature verification code that depends on the OpenSSL ASN.1 code - we use our own minimal implementation instead (ssh-rsa.c).
          >
          > IIRC this has saved us from at least two bugs so far: an ASN.1 bug a while ago and the new Bleichenbacher attack.
          >
          > Thanks Markus Friedl for this code :)
          >
          > Thank god!

          There for ... Markus Friedl == God ;

        2. By Anonymous Coward (66.93.101.100) on

          >
          > IIRC this has saved us from at least two bugs so far: an ASN.1 bug a while ago and the new Bleichenbacher attack.
          >

          Would openssh's key generator ever generate RSA keys with e=3 anyway?

    2. By Anonymous Coward (24.34.57.27) on

      > It is my understanding that OpenSSH relies on OpenSSL, but can we really trust OpenSSL? Who controls the OpenSSL organization and who does the code audits? More important, has the OpenSSL code been audited or certified in any way? Too many sensible applications rely on OpenSSL, so the question is: Can we trust OpenSSL?

      Does OpenSSH work with OpenSSL 0.9.8x? The documentation just states 0.9.6 or newer, but I vaguely remember running into problems with 0.9.8x in the past, and I can't find anything more specific.

      Comments
      1. By Anonymous Coward (24.34.57.27) on

        > > It is my understanding that OpenSSH relies on OpenSSL, but can we really trust OpenSSL? Who controls the OpenSSL organization and who does the code audits? More important, has the OpenSSL code been audited or certified in any way? Too many sensible applications rely on OpenSSL, so the question is: Can we trust OpenSSL?
        >
        > Does OpenSSH work with OpenSSL 0.9.8x? The documentation just states 0.9.6 or newer, but I vaguely remember running into problems with 0.9.8x in the past, and I can't find anything more specific.

        To answer my own question, ssh dumps core when compiled with 0.9.8c. Back to 0.9.7, methinks.

        Comments
        1. By Darren Tucker (203.217.17.96) dtucker@zip.com.au on http://www.zip.com.au/~dtucker/

          > To answer my own question, ssh dumps core when compiled with 0.9.8c.
          > Back to 0.9.7, methinks.

          I've tested it with 0.9.8b and 0.9.8c and it worked ok (0.9.8a had an issue on ultrasparc cpus but that's fixed in the later versions).

          Could you please provide more information (preferably as a bugreport to either http://bugzilla.mindrot.org/ or openssh-unix-dev@mindrot.org)?

          I would first try OpenSSL's self-test if you haven't already (do "make tests" after building it) to make sure it's not a problem with OpenSSL itself.

          Comments
          1. By Anonymous Coward (24.34.57.27) on

            > > To answer my own question, ssh dumps core when compiled with 0.9.8c.
            > > Back to 0.9.7, methinks.
            >
            > I've tested it with 0.9.8b and 0.9.8c and it worked ok (0.9.8a had an issue on ultrasparc cpus but that's fixed in the later versions).
            >
            > Could you please provide more information (preferably as a bugreport to either http://bugzilla.mindrot.org/ or openssh-unix-dev@mindrot.org)?
            >
            > I would first try OpenSSL's self-test if you haven't already (do "make tests" after building it) to make sure it's not a problem with OpenSSL itself.

            Sure, I'll do that. I forgot to mention, this was on FreeBSD 6.1 using OpenSSL 0.9.8c out of ports.

    3. By Anonymous Coward (74.114.186.166) on

      > More important, has the OpenSSL code been audited or certified in any way?

      Well, openbsd/openssh developers don't really care much about crypto and haven't been known to put much effort into code auditing, so they probably just pretty much trust that nothing will go wrong.

      Comments
      1. By Anonymous Coward (207.114.138.3) on

        > > More important, has the OpenSSL code been audited or certified in any way?
        >
        > Well, openbsd/openssh developers don't really care much about crypto and haven't been known to put much effort into code auditing, so they probably just pretty much trust that nothing will go wrong.


        lol, yeah, they prolly don't

        it's also just a coincidence that open bsd/ssh are some of (if not THE) the most secure OS and remote communication software on Earth

  2. By Nate (65.95.229.97) on

    Tucker's blurb mentions Niels Provos, is he still actively developing OpenSSH, or is that more of a historical note because of how much he contributed in the past? I've not seen him say anything on OpenBSD lists or anything in a long while, like 2002 kinda range. CVS notes mention him occasionally being consulted for stuff like systrace or libevent, so I just had to ask if that's more an honourary, "brought to you by," because he's moved on.

    Comments
    1. By Darren Tucker (203.217.17.96) on http://www.zip.com.au/~dtucker/

      > Tucker's blurb mentions Niels Provos, is he still actively developing
      > OpenSSH, or is that more of a historical note because of how much he
      > contributed in the past?

      Niels hasn't been active in OpenSSH for some time, but his code is still there. Same goes for Ben.

      I have some stats on who did what and when in OpenSSH that I can put up if anyone is curious.

  3. By Bruno (67.70.101.245) on

    Thanks Darren for the Match directive change. I'm happy it made into the official sources tree.

Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]