diff options
author | Mark H Weaver <mhw@netris.org> | 2015-11-11 07:43:12 -0500 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2015-11-11 07:45:11 -0500 |
commit | 419630e0bec46b9cb33047dea1662df0c400ade3 (patch) | |
tree | 585a136efc3f6af5be8ffe95435ccb96f59d58e7 /gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch | |
parent | 875b2f3d5e7c04176239d16c1832543f315cbf91 (diff) | |
download | guix-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.patch | 34 |
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 + |