summaryrefslogtreecommitdiff
path: root/source/n/wpa_supplicant/patches/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2021-12-29 02:42:32 +0000
committerEric Hameleers <alien@slackware.com>2021-12-29 08:59:55 +0100
commit58eb3d5294fad71e08ea24b683dea0905c86c827 (patch)
treed00c7a42e4cbf0cdbaee9ea00edc5855a4174e0c /source/n/wpa_supplicant/patches/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch
parentac00706594d04f1b74af59b2437af2165087610b (diff)
downloadcurrent-58eb3d5294fad71e08ea24b683dea0905c86c827.tar.gz
Wed Dec 29 02:42:32 UTC 202120211229024232
l/libgsf-1.14.48-x86_64-1.txz: Upgraded. l/netpbm-10.97.00-x86_64-1.txz: Upgraded. n/wpa_supplicant-2.9-x86_64-8.txz: Rebuilt. This update fixes the following security issues: AP mode PMF disconnection protection bypass. UPnP SUBSCRIBE misbehavior in hostapd WPS AP. P2P group information processing vulnerability. P2P provision discovery processing vulnerability. ASN.1: Validate DigestAlgorithmIdentifier parameters. Flush pending control interface message for an interface to be removed. These issues could result in a denial-of-service, privilege escalation, arbitrary code execution, or other unexpected behavior. Thanks to nobodino for pointing out the patches. For more information, see: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-0326 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-0535 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-12695 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-16275 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27803 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-30004 (* Security fix *) xap/seamonkey-2.53.10.2-x86_64-1.txz: Upgraded. This update contains security fixes and improvements. For more information, see: https://www.seamonkey-project.org/releases/seamonkey2.53.10.2 (* Security fix *)
Diffstat (limited to 'source/n/wpa_supplicant/patches/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch')
-rw-r--r--source/n/wpa_supplicant/patches/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/source/n/wpa_supplicant/patches/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch b/source/n/wpa_supplicant/patches/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch
new file mode 100644
index 00000000..c7a449e0
--- /dev/null
+++ b/source/n/wpa_supplicant/patches/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch
@@ -0,0 +1,59 @@
+From f7d268864a2660b7239b9a8ff5ad37faeeb751ba Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@codeaurora.org>
+Date: Wed, 3 Jun 2020 22:41:02 +0300
+Subject: [PATCH 2/3] WPS UPnP: Fix event message generation using a long URL
+ path
+
+More than about 700 character URL ended up overflowing the wpabuf used
+for building the event notification and this resulted in the wpabuf
+buffer overflow checks terminating the hostapd process. Fix this by
+allocating the buffer to be large enough to contain the full URL path.
+However, since that around 700 character limit has been the practical
+limit for more than ten years, start explicitly enforcing that as the
+limit or the callback URLs since any longer ones had not worked before
+and there is no need to enable them now either.
+
+Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
+---
+ src/wps/wps_upnp.c | 9 +++++++--
+ src/wps/wps_upnp_event.c | 3 ++-
+ 2 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/src/wps/wps_upnp.c b/src/wps/wps_upnp.c
+index 7d4b7439940e..ab685d52ecab 100644
+--- a/src/wps/wps_upnp.c
++++ b/src/wps/wps_upnp.c
+@@ -328,9 +328,14 @@ static void subscr_addr_add_url(struct subscription *s, const char *url,
+ int rerr;
+ size_t host_len, path_len;
+
+- /* url MUST begin with http: */
+- if (url_len < 7 || os_strncasecmp(url, "http://", 7))
++ /* URL MUST begin with HTTP scheme. In addition, limit the length of
++ * the URL to 700 characters which is around the limit that was
++ * implicitly enforced for more than 10 years due to a bug in
++ * generating the event messages. */
++ if (url_len < 7 || os_strncasecmp(url, "http://", 7) || url_len > 700) {
++ wpa_printf(MSG_DEBUG, "WPS UPnP: Reject an unacceptable URL");
+ goto fail;
++ }
+ url += 7;
+ url_len -= 7;
+
+diff --git a/src/wps/wps_upnp_event.c b/src/wps/wps_upnp_event.c
+index d7e6edcc6503..08a23612f338 100644
+--- a/src/wps/wps_upnp_event.c
++++ b/src/wps/wps_upnp_event.c
+@@ -147,7 +147,8 @@ static struct wpabuf * event_build_message(struct wps_event_ *e)
+ struct wpabuf *buf;
+ char *b;
+
+- buf = wpabuf_alloc(1000 + wpabuf_len(e->data));
++ buf = wpabuf_alloc(1000 + os_strlen(e->addr->path) +
++ wpabuf_len(e->data));
+ if (buf == NULL)
+ return NULL;
+ wpabuf_printf(buf, "NOTIFY %s HTTP/1.1\r\n", e->addr->path);
+--
+2.20.1
+