Module Name:    src
Committed By:   christos
Date:           Wed Mar 16 21:06:06 UTC 2016

Modified Files:
        src/crypto/external/bsd/openssh/dist: kex.c

Log Message:
CID 1356388: Prevent DoS from Tainted scalar


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/crypto/external/bsd/openssh/dist/kex.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/crypto/external/bsd/openssh/dist/kex.c
diff -u src/crypto/external/bsd/openssh/dist/kex.c:1.14 src/crypto/external/bsd/openssh/dist/kex.c:1.15
--- src/crypto/external/bsd/openssh/dist/kex.c:1.14	Thu Mar 10 20:55:00 2016
+++ src/crypto/external/bsd/openssh/dist/kex.c	Wed Mar 16 17:06:06 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: kex.c,v 1.14 2016/03/11 01:55:00 christos Exp $	*/
+/*	$NetBSD: kex.c,v 1.15 2016/03/16 21:06:06 christos Exp $	*/
 /* $OpenBSD: kex.c,v 1.117 2016/02/08 10:57:07 djm Exp $ */
 
 /*
@@ -26,7 +26,7 @@
  */
 
 #include "includes.h"
-__RCSID("$NetBSD: kex.c,v 1.14 2016/03/11 01:55:00 christos Exp $");
+__RCSID("$NetBSD: kex.c,v 1.15 2016/03/16 21:06:06 christos Exp $");
 #include <sys/param.h>	/* MAX roundup */
 
 #include <signal.h>
@@ -364,6 +364,10 @@ kex_input_ext_info(int type, u_int32_t s
 	ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, &kex_protocol_error);
 	if ((r = sshpkt_get_u32(ssh, &ninfo)) != 0)
 		return r;
+	if (ninfo > 1024) {
+		fatal("%s: too many %u fields", __func__, ninfo);
+		return SSH_ERR_INTERNAL_ERROR;
+	}
 	for (i = 0; i < ninfo; i++) {
 		if ((r = sshpkt_get_cstring(ssh, &name, NULL)) != 0)
 			return r;

Reply via email to