From e4c237306daab08ea50e896da3800b6c1e21771d Mon Sep 17 00:00:00 2001 From: cfconrad <> Date: Mar 10 2021 07:55:03 +0000 Subject: Update wpa_supplicant to version 2.9 / rev 86 via SR 875681 https://build.opensuse.org/request/show/875681 by user cfconrad + dimstar_suse --- diff --git a/.files b/.files index 8d8f0ed..33752c0 100644 Binary files a/.files and b/.files differ diff --git a/.rev b/.rev index c5dbde0..6d9a541 100644 --- a/.rev +++ b/.rev @@ -696,4 +696,12 @@ <comment></comment> <requestid>869590</requestid> </revision> + <revision rev="86" vrev="11"> + <srcmd5>8eef387cf2d34598507e9bdaf9bf45b1</srcmd5> + <version>2.9</version> + <time>1615362486</time> + <user>dimstar_suse</user> + <comment></comment> + <requestid>875681</requestid> + </revision> </revisionlist> diff --git a/CVE-2021-27803.patch b/CVE-2021-27803.patch new file mode 100644 index 0000000..1942bb3 --- /dev/null +++ b/CVE-2021-27803.patch @@ -0,0 +1,50 @@ +From 8460e3230988ef2ec13ce6b69b687e941f6cdb32 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <jouni@codeaurora.org> +Date: Tue, 8 Dec 2020 23:52:50 +0200 +Subject: [PATCH] P2P: Fix a corner case in peer addition based on PD Request + +p2p_add_device() may remove the oldest entry if there is no room in the +peer table for a new peer. This would result in any pointer to that +removed entry becoming stale. A corner case with an invalid PD Request +frame could result in such a case ending up using (read+write) freed +memory. This could only by triggered when the peer table has reached its +maximum size and the PD Request frame is received from the P2P Device +Address of the oldest remaining entry and the frame has incorrect P2P +Device Address in the payload. + +Fix this by fetching the dev pointer again after having called +p2p_add_device() so that the stale pointer cannot be used. + +Fixes: 17bef1e97a50 ("P2P: Add peer entry based on Provision Discovery Request") +Signed-off-by: Jouni Malinen <jouni@codeaurora.org> +--- + src/p2p/p2p_pd.c | 12 +++++------- + 1 file changed, 5 insertions(+), 7 deletions(-) + +diff --git a/src/p2p/p2p_pd.c b/src/p2p/p2p_pd.c +index 3994ec03f86b..05fd593494ef 100644 +--- a/src/p2p/p2p_pd.c ++++ b/src/p2p/p2p_pd.c +@@ -595,14 +595,12 @@ void p2p_process_prov_disc_req(struct p2p_data *p2p, const u8 *sa, + goto out; + } + ++ dev = p2p_get_device(p2p, sa); + if (!dev) { +- dev = p2p_get_device(p2p, sa); +- if (!dev) { +- p2p_dbg(p2p, +- "Provision Discovery device not found " +- MACSTR, MAC2STR(sa)); +- goto out; +- } ++ p2p_dbg(p2p, ++ "Provision Discovery device not found " ++ MACSTR, MAC2STR(sa)); ++ goto out; + } + } else if (msg.wfd_subelems) { + wpabuf_free(dev->info.wfd_subelems); +-- +2.25.1 + diff --git a/wpa_supplicant.changes b/wpa_supplicant.changes index b777679..a2a3a70 100644 --- a/wpa_supplicant.changes +++ b/wpa_supplicant.changes @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Sat Feb 27 23:14:13 UTC 2021 - Clemens Famulla-Conrad <cfamullaconrad@suse.com> + +- Add CVE-2021-27803.patch -- P2P provision discovery processing vulnerability + (bsc#1182805) + +------------------------------------------------------------------- Thu Feb 4 12:27:02 UTC 2021 - Clemens Famulla-Conrad <cfamullaconrad@suse.com> - Add CVE-2021-0326.patch -- P2P group information processing vulnerability diff --git a/wpa_supplicant.spec b/wpa_supplicant.spec index c93bf5a..077c451 100644 --- a/wpa_supplicant.spec +++ b/wpa_supplicant.spec @@ -43,6 +43,7 @@ Patch6: restore-old-dbus-interface.patch Patch7: CVE-2019-16275.patch Patch8: wpa_supplicant-p2p_iname_size.diff Patch9: CVE-2021-0326.patch +Patch10: CVE-2021-27803.patch BuildRequires: pkgconfig BuildRequires: readline-devel BuildRequires: systemd-rpm-macros