Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=fb86b4024a49c01bd387ba981bf1b73a287c01e5

commit fb86b4024a49c01bd387ba981bf1b73a287c01e5
Author: kikadf <[email protected]>
Date:   Wed Apr 16 16:56:37 2014 +0200

openssh-6.1p1-2-x86_64

* Fix CVE-2013-4548, CVE-2014-2532, CVE-2014-2653

diff --git a/source/network/openssh/CVE-2013-4548.patch 
b/source/network/openssh/CVE-2013-4548.patch
new file mode 100644
index 0000000..654e12c
--- /dev/null
+++ b/source/network/openssh/CVE-2013-4548.patch
@@ -0,0 +1,17 @@
+Description: fix code execution via memory corruption when using an AES-GCM 
cipher
+Origin: upstream, 
http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/monitor_wrap.c.diff?r1=1.76;r2=1.77
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=729029
+
+Index: openssh-6.2p2/monitor_wrap.c
+===================================================================
+--- openssh-6.2p2.orig/monitor_wrap.c  2013-11-08 07:39:37.000000000 -0500
++++ openssh-6.2p2/monitor_wrap.c       2013-11-08 07:50:53.712922305 -0500
+@@ -498,7 +498,7 @@
+       buffer_init(&b);
+       buffer_append(&b, blob, blen);
+
+-      newkey = xmalloc(sizeof(*newkey));
++      newkey = xcalloc(1, sizeof(*newkey));
+       enc = &newkey->enc;
+       mac = &newkey->mac;
+       comp = &newkey->comp;
diff --git a/source/network/openssh/CVE-2014-2532.patch 
b/source/network/openssh/CVE-2014-2532.patch
new file mode 100644
index 0000000..409da83
--- /dev/null
+++ b/source/network/openssh/CVE-2014-2532.patch
@@ -0,0 +1,30 @@
+Description: fix AcceptEnv wildcard environment restrictions bypass
+Origin: upstream, 
http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/session.c.diff?r1=1.270;r2=1.271
+
+Index: openssh-6.2p2/session.c
+===================================================================
+--- openssh-6.2p2.orig/session.c       2014-03-21 10:51:44.356050204 -0400
++++ openssh-6.2p2/session.c    2014-03-21 10:57:33.044059541 -0400
+@@ -966,6 +966,11 @@
+               *envsizep = 1;
+       }
+
++      if (strchr(name, '=') != NULL) {
++              error("Invalid environment variable \"%.100s\"", name);
++              return;
++      }
++
+       /*
+        * Find the slot where the value should be stored.  If the variable
+        * already exists, we reuse the slot; otherwise we append a new slot
+@@ -2194,8 +2199,8 @@
+       char *name, *val;
+       u_int name_len, val_len, i;
+
+-      name = packet_get_string(&name_len);
+-      val = packet_get_string(&val_len);
++      name = packet_get_cstring(&name_len);
++      val = packet_get_cstring(&val_len);
+       packet_check_eom();
+
+       /* Don't set too many environment variables */
diff --git a/source/network/openssh/CVE-2014-2653.patch 
b/source/network/openssh/CVE-2014-2653.patch
new file mode 100644
index 0000000..2bf858a
--- /dev/null
+++ b/source/network/openssh/CVE-2014-2653.patch
@@ -0,0 +1,74 @@
+Description: Attempt SSHFP lookup even if server presents a certificate
+ If an ssh server presents a certificate to the client, then the client does
+ not check the DNS for SSHFP records. This means that a malicious server can
+ essentially disable DNS-host-key-checking, which means the client will fall
+ back to asking the user (who will just say "yes" to the fingerprint,
+ sadly).
+ .
+ This is CVE-2014-2653.
+Author: Damien Miller <[email protected]>
+Reviewed-by: Matthew Vernon <[email protected]>
+Bug-Debian: http://bugs.debian.org/742513
+Forwarded: not-needed
+Last-Update: 2014-04-03
+
+Index: b/sshconnect.c
+===================================================================
+--- a/sshconnect.c
++++ b/sshconnect.c
+@@ -1110,29 +1110,39 @@
+ {
+       int flags = 0;
+       char *fp;
++      Key *plain = NULL;
+
+       fp = key_fingerprint(host_key, SSH_FP_MD5, SSH_FP_HEX);
+       debug("Server host key: %s %s", key_type(host_key), fp);
+       xfree(fp);
+
+-      /* XXX certs are not yet supported for DNS */
+-      if (!key_is_cert(host_key) && options.verify_host_key_dns &&
+-          verify_host_key_dns(host, hostaddr, host_key, &flags) == 0) {
+-              if (flags & DNS_VERIFY_FOUND) {
+-
+-                      if (options.verify_host_key_dns == 1 &&
+-                          flags & DNS_VERIFY_MATCH &&
+-                          flags & DNS_VERIFY_SECURE)
+-                              return 0;
+-
+-                      if (flags & DNS_VERIFY_MATCH) {
+-                              matching_host_key_dns = 1;
+-                      } else {
+-                              warn_changed_key(host_key);
+-                              error("Update the SSHFP RR in DNS with the new "
+-                                  "host key to get rid of this message.");
++      if (options.verify_host_key_dns) {
++              /*
++               * XXX certs are not yet supported for DNS, so downgrade
++               * them and try the plain key.
++               */
++              plain = key_from_private(host_key);
++              if (key_is_cert(plain))
++                      key_drop_cert(plain);
++              if (verify_host_key_dns(host, hostaddr, plain, &flags) == 0) {
++                      if (flags & DNS_VERIFY_FOUND) {
++                              if (options.verify_host_key_dns == 1 &&
++                                  flags & DNS_VERIFY_MATCH &&
++                                  flags & DNS_VERIFY_SECURE) {
++                                      key_free(plain);
++                                      return 0;
++                              }
++                              if (flags & DNS_VERIFY_MATCH) {
++                                      matching_host_key_dns = 1;
++                              } else {
++                                      warn_changed_key(plain);
++                                      error("Update the SSHFP RR in DNS "
++                                          "with the new host key to get rid "
++                                          "of this message.");
++                              }
+                       }
+               }
++              key_free(plain);
+       }
+
+       return check_host_key(host, hostaddr, options.port, host_key, RDRW,
diff --git a/source/network/openssh/FrugalBuild 
b/source/network/openssh/FrugalBuild
index 38abe7a..3e3eba9 100644
--- a/source/network/openssh/FrugalBuild
+++ b/source/network/openssh/FrugalBuild
@@ -4,7 +4,7 @@

pkgname=openssh
pkgver=6.1p1
-pkgrel=1
+pkgrel=2
pkgdesc='Secure Shell daemon and clients'
url="http://www.openssh.com/";
backup=('etc/ssh/ssh_config' 'etc/ssh/sshd_config')
@@ -30,6 +30,13 @@ subrodepends=("openssh")
subgroups=('xapps')
subarchs=('x86_64 i686 arm')

+# FSA fix ***
+source=(${source[@]} CVE-2013-4548.patch CVE-2014-2532.patch 
CVE-2014-2653.patch)
+sha1sums=(${sha1sums[@]} '8ff203e40c93b319e17d3598b51a908b30e5e04b' \
+                         'ca0c9a7972adb8cdeab9b6019408a7e1e58dbb16' \
+                         '2ffe0cdfdccbd5c7d0b46694a2b2ca9fed2e0b21')
+# ***********
+
build()
{
Fbuild --sysconfdir=/etc/ssh --datadir=/usr/share/openssh \
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to