]> code.ossystems Code Review - openembedded-core.git/commitdiff
openssh: Security fix CVE-2016-5615
authorArmin Kuster <akuster@mvista.com>
Sun, 18 Sep 2016 04:09:43 +0000 (21:09 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 23 Sep 2016 22:21:43 +0000 (23:21 +0100)
openssh < 7.3

Signed-off-by: Armin Kuster <akuster@mvista.com>
meta/recipes-connectivity/openssh/openssh/CVE-2016-6515.patch [new file with mode: 0644]
meta/recipes-connectivity/openssh/openssh_7.1p2.bb

diff --git a/meta/recipes-connectivity/openssh/openssh/CVE-2016-6515.patch b/meta/recipes-connectivity/openssh/openssh/CVE-2016-6515.patch
new file mode 100644 (file)
index 0000000..c721902
--- /dev/null
@@ -0,0 +1,54 @@
+From fcd135c9df440bcd2d5870405ad3311743d78d97 Mon Sep 17 00:00:00 2001
+From: "dtucker@openbsd.org" <dtucker@openbsd.org>
+Date: Thu, 21 Jul 2016 01:39:35 +0000
+Subject: [PATCH] upstream commit
+
+Skip passwords longer than 1k in length so clients can't
+easily DoS sshd by sending very long passwords, causing it to spend CPU
+hashing them. feedback djm@, ok markus@.
+
+Brought to our attention by tomas.kuthan at oracle.com, shilei-c at
+360.cn and coredump at autistici.org
+
+Upstream-ID: d0af7d4a2190b63ba1d38eec502bc4be0be9e333
+
+Upstream-Status: Backport
+CVE: CVE-2016-6515
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ auth-passwd.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/auth-passwd.c b/auth-passwd.c
+index 530b5d4..996c2cf 100644
+--- a/auth-passwd.c
++++ b/auth-passwd.c
+@@ -1,4 +1,4 @@
+-/* $OpenBSD: auth-passwd.c,v 1.44 2014/07/15 15:54:14 millert Exp $ */
++/* $OpenBSD: auth-passwd.c,v 1.45 2016/07/21 01:39:35 dtucker Exp $ */
+ /*
+  * Author: Tatu Ylonen <ylo@cs.hut.fi>
+  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
+@@ -66,6 +66,8 @@ extern login_cap_t *lc;
+ #define DAY           (24L * 60 * 60) /* 1 day in seconds */
+ #define TWO_WEEKS     (2L * 7 * DAY)  /* 2 weeks in seconds */
++#define MAX_PASSWORD_LEN      1024
++
+ void
+ disable_forwarding(void)
+ {
+@@ -87,6 +89,9 @@ auth_password(Authctxt *authctxt, const char *password)
+       static int expire_checked = 0;
+ #endif
++      if (strlen(password) > MAX_PASSWORD_LEN)
++              return 0;
++
+ #ifndef HAVE_CYGWIN
+       if (pw->pw_uid == 0 && options.permit_root_login != PERMIT_YES)
+               ok = 0;
+-- 
+2.7.4
+
index bd047b0773db04ffb37943fd0b69c2d00b7f757a..51c82c74a35b63035c776715dc5f54511e80137a 100644 (file)
@@ -28,6 +28,7 @@ SRC_URI = "ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar.
            file://CVE-2016-6210.patch \
            file://CVE-2016-6210_p2.patch \
            file://CVE-2016-6210_p3.patch \
+           file://CVE-2016-6515.patch \
            "
 
 PAM_SRC_URI = "file://sshd"