summary refs log tree commit diff
path: root/gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2015-11-11 07:43:12 -0500
committerMark H Weaver <mhw@netris.org>2015-11-11 07:45:11 -0500
commit419630e0bec46b9cb33047dea1662df0c400ade3 (patch)
tree585a136efc3f6af5be8ffe95435ccb96f59d58e7 /gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch
parent875b2f3d5e7c04176239d16c1832543f315cbf91 (diff)
downloadguix-419630e0bec46b9cb33047dea1662df0c400ade3.tar.gz
gnu: wpa-supplicant: Add fixes for CVE-2015-{5310,5314,5315,5316}.
* gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch,
  gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch,
  gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch,
  gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch: New files.
* gnu-system.am (dist_patch_DATA): Add them.
* gnu/packages/admin.scm (wpa-supplicant-minimal)[source]: Add patches.
Diffstat (limited to 'gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch')
-rw-r--r--gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch b/gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch
new file mode 100644
index 0000000000..3088f6a6dc
--- /dev/null
+++ b/gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch
@@ -0,0 +1,34 @@
+From 95577884ca4fa76be91344ff7a8d5d1e6dc3da61 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Sun, 1 Nov 2015 19:35:44 +0200
+Subject: [PATCH] EAP-pwd peer: Fix error path for unexpected Confirm message
+
+If the Confirm message is received from the server before the Identity
+exchange has been completed, the group has not yet been determined and
+data->grp is NULL. The error path in eap_pwd_perform_confirm_exchange()
+did not take this corner case into account and could end up
+dereferencing a NULL pointer and terminating the process if invalid
+message sequence is received. (CVE-2015-5316)
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/eap_peer/eap_pwd.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c
+index 75ceef1..892b590 100644
+--- a/src/eap_peer/eap_pwd.c
++++ b/src/eap_peer/eap_pwd.c
+@@ -774,7 +774,8 @@ eap_pwd_perform_confirm_exchange(struct eap_sm *sm, struct eap_pwd_data *data,
+ 	wpabuf_put_data(data->outbuf, conf, SHA256_MAC_LEN);
+ 
+ fin:
+-	bin_clear_free(cruft, BN_num_bytes(data->grp->prime));
++	if (data->grp)
++		bin_clear_free(cruft, BN_num_bytes(data->grp->prime));
+ 	BN_clear_free(x);
+ 	BN_clear_free(y);
+ 	if (data->outbuf == NULL) {
+-- 
+1.9.1
+