pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/security/openssh Fix two vulnerabilities in OpenSSH:



details:   https://anonhg.NetBSD.org/pkgsrc/rev/19472a237412
branches:  trunk
changeset: 540220:19472a237412
user:      tonnerre <tonnerre%pkgsrc.org@localhost>
date:      Thu Apr 03 07:59:08 2008 +0000

description:
Fix two vulnerabilities in OpenSSH:
 - X11 forwarding information disclosure (CVE-2008-1483)
 - ForceCommand bypass vulnerability

diffstat:

 security/openssh/Makefile         |   4 ++--
 security/openssh/distinfo         |   5 +++--
 security/openssh/patches/patch-ao |  37 +++++++++++++++++++++++++++++--------
 security/openssh/patches/patch-ax |  18 ++++++++++++++++++
 4 files changed, 52 insertions(+), 12 deletions(-)

diffs (140 lines):

diff -r 18d187e4c2c1 -r 19472a237412 security/openssh/Makefile
--- a/security/openssh/Makefile Thu Apr 03 04:08:22 2008 +0000
+++ b/security/openssh/Makefile Thu Apr 03 07:59:08 2008 +0000
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.186 2008/01/18 05:09:39 tnn Exp $
+# $NetBSD: Makefile,v 1.187 2008/04/03 07:59:08 tonnerre Exp $
 
 DISTNAME=              openssh-4.7p1
 PKGNAME=               openssh-4.7.1
-PKGREVISION=           2
+PKGREVISION=           3
 SVR4_PKGNAME=          ossh
 CATEGORIES=            security
 MASTER_SITES=          ftp://ftp.openssh.com/pub/OpenBSD/OpenSSH/portable/ \
diff -r 18d187e4c2c1 -r 19472a237412 security/openssh/distinfo
--- a/security/openssh/distinfo Thu Apr 03 04:08:22 2008 +0000
+++ b/security/openssh/distinfo Thu Apr 03 07:59:08 2008 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.66 2007/09/19 13:42:02 taca Exp $
+$NetBSD: distinfo,v 1.67 2008/04/03 07:59:08 tonnerre Exp $
 
 SHA1 (openssh-4.7.1-20070919/openssh-4.7p1-hpn12v18.diff.gz) = 8ab61d12b5bcf70d0ffe9cb1d157136d20ebb22c
 RMD160 (openssh-4.7.1-20070919/openssh-4.7p1-hpn12v18.diff.gz) = 7b35eb1a3f6f3b703ac7f155f620bff63a900a0e
@@ -20,7 +20,7 @@
 SHA1 (patch-al) = d312a068047a375e52180026554bab745efdcdb7
 SHA1 (patch-am) = 4e2278b20e87e530e1819efde976d4414e160e38
 SHA1 (patch-an) = 2f955b8891bedd79986490d282eb09acd4910250
-SHA1 (patch-ao) = a70da4f5942553a42fa935b82172e601b29951df
+SHA1 (patch-ao) = 1061066758f7fe2fca630b15a55cbdc1ab041758
 SHA1 (patch-ap) = 2c0c092637661328046b71292a7412d09e92bb2a
 SHA1 (patch-aq) = a619b57361b04d5ab3d41375c18f7b99d71c8b34
 SHA1 (patch-ar) = fce4dc1011a124f02b8e14980cda1d633b36aa7d
@@ -28,3 +28,4 @@
 SHA1 (patch-au) = 6cfdfc531e2267017a15e66ea48c7ecfa2a3926f
 SHA1 (patch-av) = 00f54c3fae7318b278b16bd0b01881a90bd31365
 SHA1 (patch-aw) = 2a88b7563c6f52163c6c5f716e437ecaea613a30
+SHA1 (patch-ax) = 1ddf59636b6f3b544850f787ca63287fd93cae88
diff -r 18d187e4c2c1 -r 19472a237412 security/openssh/patches/patch-ao
--- a/security/openssh/patches/patch-ao Thu Apr 03 04:08:22 2008 +0000
+++ b/security/openssh/patches/patch-ao Thu Apr 03 07:59:08 2008 +0000
@@ -1,8 +1,17 @@
-$NetBSD: patch-ao,v 1.9 2006/10/31 03:31:20 taca Exp $
+$NetBSD: patch-ao,v 1.10 2008/04/03 07:59:08 tonnerre Exp $
 
---- session.c.orig     2006-10-29 17:01:29.000000000 +0900
+--- session.c.orig     2007-08-16 13:28:04.000000000 +0000
 +++ session.c
-@@ -956,7 +956,7 @@ read_etc_default_login(char ***env, u_in
+@@ -347,7 +347,7 @@ do_authenticated1(Authctxt *authctxt)
+                               break;
+                       }
+                       debug("Received TCP/IP port forwarding request.");
+-                      if (channel_input_port_forward_request(s->pw->pw_uid == 0,
++                      if (channel_input_port_forward_request(s->pw->pw_uid == ROOTUID,
+                           options.gateway_ports) < 0) {
+                               debug("Port forwarding failed.");
+                               break;
+@@ -954,7 +954,7 @@ read_etc_default_login(char ***env, u_in
        if (tmpenv == NULL)
                return;
  
@@ -11,7 +20,7 @@
                var = child_get_env(tmpenv, "SUPATH");
        else
                var = child_get_env(tmpenv, "PATH");
-@@ -1065,7 +1065,7 @@ do_setup_env(Session *s, const char *she
+@@ -1063,7 +1063,7 @@ do_setup_env(Session *s, const char *she
  #  endif /* HAVE_ETC_DEFAULT_LOGIN */
                if (path == NULL || *path == '\0') {
                        child_set_env(&env, &envsize, "PATH",
@@ -20,7 +29,7 @@
                                SUPERUSER_PATH : _PATH_STDPATH);
                }
  # endif /* HAVE_CYGWIN */
-@@ -1179,6 +1179,18 @@ do_setup_env(Session *s, const char *she
+@@ -1177,6 +1177,18 @@ do_setup_env(Session *s, const char *she
                    strcmp(pw->pw_dir, "/") ? pw->pw_dir : "");
                read_environment_file(&env, &envsize, buf);
        }
@@ -39,7 +48,19 @@
        if (debug_flag) {
                /* dump the environment */
                fprintf(stderr, "Environment:\n");
-@@ -1289,9 +1301,9 @@ do_nologin(struct passwd *pw)
+@@ -1201,8 +1213,9 @@ do_rc_files(Session *s, const char *shel
+       do_xauth =
+           s->display != NULL && s->auth_proto != NULL && s->auth_data != NULL;
+ 
+-      /* ignore _PATH_SSH_USER_RC for subsystems */
+-      if (!s->is_subsystem && (stat(_PATH_SSH_USER_RC, &st) >= 0)) {
++      /* ignore _PATH_SSH_USER_RC for subsystems and admin forced commands */
++      if (!s->is_subsystem && options.adm_forced_command == NULL &&
++          (stat(_PATH_SSH_USER_RC, &st) >= 0)) {
+               snprintf(cmd, sizeof cmd, "%s -c '%s %s'",
+                   shell, _PATH_BSHELL, _PATH_SSH_USER_RC);
+               if (debug_flag)
+@@ -1287,9 +1300,9 @@ do_nologin(struct passwd *pw)
  void
  do_setusercontext(struct passwd *pw)
  {
@@ -51,7 +72,7 @@
        {
  
  #ifdef HAVE_SETPCRED
-@@ -1333,11 +1345,13 @@ do_setusercontext(struct passwd *pw)
+@@ -1331,11 +1344,13 @@ do_setusercontext(struct passwd *pw)
                        perror("setgid");
                        exit(1);
                }
@@ -65,7 +86,7 @@
                endgrent();
  #ifdef GSSAPI
                if (options.gss_authentication) {
-@@ -2095,7 +2109,7 @@ session_pty_cleanup2(Session *s)
+@@ -2086,7 +2101,7 @@ session_pty_cleanup2(Session *s)
                record_logout(s->pid, s->tty, s->pw->pw_name);
  
        /* Release the pseudo-tty. */
diff -r 18d187e4c2c1 -r 19472a237412 security/openssh/patches/patch-ax
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/security/openssh/patches/patch-ax Thu Apr 03 07:59:08 2008 +0000
@@ -0,0 +1,18 @@
+$NetBSD: patch-ax,v 1.5 2008/04/03 07:59:08 tonnerre Exp $
+
+Don't deadlock on exit with multiple X forwarded channels.
+Don't use X11 port which can't be bound on all IP families.
+Fixes CVE-2008-1483.
+
+--- channels.c.orig    2007-06-25 09:04:47.000000000 +0000
++++ channels.c
+@@ -2905,9 +2905,6 @@ x11_create_display_inet(int x11_display_
+                               debug2("bind port %d: %.100s", port, strerror(errno));
+                               close(sock);
+ 
+-                              if (ai->ai_next)
+-                                      continue;
+-
+                               for (n = 0; n < num_socks; n++) {
+                                       close(socks[n]);
+                               }



Home | Main Index | Thread Index | Old Index