summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMingli Yu <mingli.yu@windriver.com>2021-04-08 14:33:17 +0800
committerArmin Kuster <akuster808@gmail.com>2021-04-23 18:45:08 -0700
commitd2b027d8d8fcd7c759d60b6a09123748bb6de626 (patch)
tree73c88ea613447695c096fa31aae14b367d1541a8
parenta0f00c2e1104b9a089fd34240787a9f6000312fe (diff)
downloadmeta-openembedded-d2b027d8d8fcd7c759d60b6a09123748bb6de626.tar.gz
hostapd: fix CVE-2021-0326 and CVE-2021-27803
Backport 2 patches to fix two CVEs. Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com> (cherry picked from commit 5a085c588adaf79bb2bca7921c82d893877b28a1) Signed-off-by: Armin Kuster <akuster808@gmail.com> (cherry picked from commit 845bd5a5f15bd80cecbf5c0716af3eaca5669632) Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r--meta-oe/recipes-connectivity/hostapd/hostapd/CVE-2021-0326.patch43
-rw-r--r--meta-oe/recipes-connectivity/hostapd/hostapd/CVE-2021-27803.patch54
-rw-r--r--meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb2
3 files changed, 99 insertions, 0 deletions
diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd/CVE-2021-0326.patch b/meta-oe/recipes-connectivity/hostapd/hostapd/CVE-2021-0326.patch
new file mode 100644
index 0000000000..54c405b539
--- /dev/null
+++ b/meta-oe/recipes-connectivity/hostapd/hostapd/CVE-2021-0326.patch
@@ -0,0 +1,43 @@
1From 947272febe24a8f0ea828b5b2f35f13c3821901e Mon Sep 17 00:00:00 2001
2From: Jouni Malinen <jouni@codeaurora.org>
3Date: Mon, 9 Nov 2020 11:43:12 +0200
4Subject: [PATCH] P2P: Fix copying of secondary device types for P2P group
5 client
6
7Parsing and copying of WPS secondary device types list was verifying
8that the contents is not too long for the internal maximum in the case
9of WPS messages, but similar validation was missing from the case of P2P
10group information which encodes this information in a different
11attribute. This could result in writing beyond the memory area assigned
12for these entries and corrupting memory within an instance of struct
13p2p_device. This could result in invalid operations and unexpected
14behavior when trying to free pointers from that corrupted memory.
15
16CVE: CVE-2021-0326
17
18Upstream-Status: Backport
19
20Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27269
21Fixes: e57ae6e19edf ("P2P: Keep track of secondary device types for peers")
22Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
23Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
24---
25 src/p2p/p2p.c | 2 ++
26 1 file changed, 2 insertions(+)
27
28diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c
29index 74b7b52ae..5cbfc217f 100644
30--- a/src/p2p/p2p.c
31+++ b/src/p2p/p2p.c
32@@ -453,6 +453,8 @@ static void p2p_copy_client_info(struct p2p_device *dev,
33 dev->info.config_methods = cli->config_methods;
34 os_memcpy(dev->info.pri_dev_type, cli->pri_dev_type, 8);
35 dev->info.wps_sec_dev_type_list_len = 8 * cli->num_sec_dev_types;
36+ if (dev->info.wps_sec_dev_type_list_len > WPS_SEC_DEV_TYPE_MAX_LEN)
37+ dev->info.wps_sec_dev_type_list_len = WPS_SEC_DEV_TYPE_MAX_LEN;
38 os_memcpy(dev->info.wps_sec_dev_type_list, cli->sec_dev_types,
39 dev->info.wps_sec_dev_type_list_len);
40 }
41--
422.17.1
43
diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd/CVE-2021-27803.patch b/meta-oe/recipes-connectivity/hostapd/hostapd/CVE-2021-27803.patch
new file mode 100644
index 0000000000..fedff76b18
--- /dev/null
+++ b/meta-oe/recipes-connectivity/hostapd/hostapd/CVE-2021-27803.patch
@@ -0,0 +1,54 @@
1From 8460e3230988ef2ec13ce6b69b687e941f6cdb32 Mon Sep 17 00:00:00 2001
2From: Jouni Malinen <jouni@codeaurora.org>
3Date: Tue, 8 Dec 2020 23:52:50 +0200
4Subject: [PATCH] P2P: Fix a corner case in peer addition based on PD Request
5
6p2p_add_device() may remove the oldest entry if there is no room in the
7peer table for a new peer. This would result in any pointer to that
8removed entry becoming stale. A corner case with an invalid PD Request
9frame could result in such a case ending up using (read+write) freed
10memory. This could only by triggered when the peer table has reached its
11maximum size and the PD Request frame is received from the P2P Device
12Address of the oldest remaining entry and the frame has incorrect P2P
13Device Address in the payload.
14
15Fix this by fetching the dev pointer again after having called
16p2p_add_device() so that the stale pointer cannot be used.
17
18CVE: CVE-2021-27803
19
20Upstream-Status: Backport
21
22Fixes: 17bef1e97a50 ("P2P: Add peer entry based on Provision Discovery Request")
23Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
24---
25 src/p2p/p2p_pd.c | 12 +++++-------
26 1 file changed, 5 insertions(+), 7 deletions(-)
27
28diff --git a/src/p2p/p2p_pd.c b/src/p2p/p2p_pd.c
29index 3994ec03f..05fd59349 100644
30--- a/src/p2p/p2p_pd.c
31+++ b/src/p2p/p2p_pd.c
32@@ -595,14 +595,12 @@ void p2p_process_prov_disc_req(struct p2p_data *p2p, const u8 *sa,
33 goto out;
34 }
35
36+ dev = p2p_get_device(p2p, sa);
37 if (!dev) {
38- dev = p2p_get_device(p2p, sa);
39- if (!dev) {
40- p2p_dbg(p2p,
41- "Provision Discovery device not found "
42- MACSTR, MAC2STR(sa));
43- goto out;
44- }
45+ p2p_dbg(p2p,
46+ "Provision Discovery device not found "
47+ MACSTR, MAC2STR(sa));
48+ goto out;
49 }
50 } else if (msg.wfd_subelems) {
51 wpabuf_free(dev->info.wfd_subelems);
52--
532.17.1
54
diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb b/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb
index 1f38eee0ff..87899f3da2 100644
--- a/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb
+++ b/meta-oe/recipes-connectivity/hostapd/hostapd_2.9.bb
@@ -13,6 +13,8 @@ SRC_URI = " \
13 file://hostapd.service \ 13 file://hostapd.service \
14 file://CVE-2019-16275.patch \ 14 file://CVE-2019-16275.patch \
15 file://CVE-2019-5061.patch \ 15 file://CVE-2019-5061.patch \
16 file://CVE-2021-0326.patch \
17 file://CVE-2021-27803.patch \
16" 18"
17 19
18SRC_URI[md5sum] = "f188fc53a495fe7af3b6d77d3c31dee8" 20SRC_URI[md5sum] = "f188fc53a495fe7af3b6d77d3c31dee8"