summaryrefslogtreecommitdiff
path: root/pcr/openssh-knock
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-07-23 23:23:38 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-07-23 23:23:38 -0300
commit37be06461f35ca8ff23a1339305b00eb6ee66c33 (patch)
treeb7c0b975d529862e986fa2472cac6e1b333b078e /pcr/openssh-knock
parentd096de6c5ac988c5287d76600dbbb751a60b02c9 (diff)
openssh-knock-6.9p1-2: fix https://kingcope.wordpress.com/2015/07/16/openssh-keyboard-interactive-authentication-brute-force-vulnerability-maxauthtries-bypass/
Diffstat (limited to 'pcr/openssh-knock')
-rw-r--r--pcr/openssh-knock/PKGBUILD8
-rw-r--r--pcr/openssh-knock/keyboard-interactive.patch52
2 files changed, 57 insertions, 3 deletions
diff --git a/pcr/openssh-knock/PKGBUILD b/pcr/openssh-knock/PKGBUILD
index 2ade20dea..2a8368d79 100644
--- a/pcr/openssh-knock/PKGBUILD
+++ b/pcr/openssh-knock/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 241658 2015-07-01 05:21:46Z bisson $
+# $Id: PKGBUILD 242452 2015-07-23 02:38:36Z bisson $
# Maintainer (Arch): Gaetan Bisson <bisson@archlinux.org>
# Contributor (Arch): Aaron Griffin <aaron@archlinux.org>
# Contributor (Arch): judd <jvinet@zeroflux.org>
@@ -8,7 +8,7 @@
_pkgname=openssh
pkgname=openssh-knock
pkgver=6.9p1
-pkgrel=1
+pkgrel=2
pkgdesc='Free version of the SSH connectivity tools, with support for stealth TCP sockets'
url='http://www.openssh.org/portable.html'
license=('custom:BSD')
@@ -24,6 +24,7 @@ validpgpkeys=('59C2118ED206D927E667EBE3D3E5F56B6D920D30'
source=("ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/${_pkgname}-${pkgver}.tar.gz"{,.asc}
#"http://gnunet.org/sites/default/files/${_pkgname}-linux-knock-patch_0.diff"
"https://repo.parabola.nu/other/knock/patches/openssh/${_pkgname}-${pkgver}-linux-knock-patch.diff"{,.sig}
+ 'keyboard-interactive.patch'
'sshdgenkeys.service'
'sshd@.service'
'sshd.service'
@@ -32,6 +33,7 @@ source=("ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/${_pkgname}-${pkgver
'sshd.pam')
sha1sums=('86ab57f00d0fd9bf302760f2f6deac1b6e9df265' 'SKIP'
'149450fd40099e274a09b033cd2ff6e7439e64e8' 'SKIP'
+ 'ef9e9327a943839abb3d202783b318e9cd2bdcd5'
'cc1ceec606c98c7407e7ac21ade23aed81e31405'
'6a0ff3305692cf83aca96e10f3bb51e1c26fccda'
'ec49c6beba923e201505f5669cea48cad29014db'
@@ -45,7 +47,7 @@ install=install
prepare() {
cd "${srcdir}/${_pkgname}-${pkgver}"
-
+ patch -p1 -i ../keyboard-interactive.patch
patch -Np1 -i "${srcdir}"/${_pkgname}-${pkgver}-linux-knock-patch.diff
}
diff --git a/pcr/openssh-knock/keyboard-interactive.patch b/pcr/openssh-knock/keyboard-interactive.patch
new file mode 100644
index 000000000..4adafebc1
--- /dev/null
+++ b/pcr/openssh-knock/keyboard-interactive.patch
@@ -0,0 +1,52 @@
+From 5b64f85bb811246c59ebab70aed331f26ba37b18 Mon Sep 17 00:00:00 2001
+From: "djm@openbsd.org" <djm@openbsd.org>
+Date: Sat, 18 Jul 2015 07:57:14 +0000
+Subject: upstream commit
+
+only query each keyboard-interactive device once per
+ authentication request regardless of how many times it is listed; ok markus@
+
+Upstream-ID: d73fafba6e86030436ff673656ec1f33d9ffeda1
+---
+ auth2-chall.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/auth2-chall.c b/auth2-chall.c
+index ddabe1a..4aff09d 100644
+--- a/auth2-chall.c
++++ b/auth2-chall.c
+@@ -1,4 +1,4 @@
+-/* $OpenBSD: auth2-chall.c,v 1.42 2015/01/19 20:07:45 markus Exp $ */
++/* $OpenBSD: auth2-chall.c,v 1.43 2015/07/18 07:57:14 djm Exp $ */
+ /*
+ * Copyright (c) 2001 Markus Friedl. All rights reserved.
+ * Copyright (c) 2001 Per Allansson. All rights reserved.
+@@ -83,6 +83,7 @@ struct KbdintAuthctxt
+ void *ctxt;
+ KbdintDevice *device;
+ u_int nreq;
++ u_int devices_done;
+ };
+
+ #ifdef USE_PAM
+@@ -169,11 +170,15 @@ kbdint_next_device(Authctxt *authctxt, KbdintAuthctxt *kbdintctxt)
+ if (len == 0)
+ break;
+ for (i = 0; devices[i]; i++) {
+- if (!auth2_method_allowed(authctxt,
++ if ((kbdintctxt->devices_done & (1 << i)) != 0 ||
++ !auth2_method_allowed(authctxt,
+ "keyboard-interactive", devices[i]->name))
+ continue;
+- if (strncmp(kbdintctxt->devices, devices[i]->name, len) == 0)
++ if (strncmp(kbdintctxt->devices, devices[i]->name,
++ len) == 0) {
+ kbdintctxt->device = devices[i];
++ kbdintctxt->devices_done |= 1 << i;
++ }
+ }
+ t = kbdintctxt->devices;
+ kbdintctxt->devices = t[len] ? xstrdup(t+len+1) : NULL;
+--
+cgit v0.11.2
+