git: b2107e60f62e - releng/12.2 - net80211: proper ssid length check in setmlme_assoc_adhoc()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 15 Mar 2022 18:16:35 UTC
The branch releng/12.2 has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=b2107e60f62ed2a232900d77ec54804228d1bfc8
commit b2107e60f62ed2a232900d77ec54804228d1bfc8
Author: Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2021-10-06 18:41:37 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2022-03-15 17:39:55 +0000
net80211: proper ssid length check in setmlme_assoc_adhoc()
A user supplied SSID length is used without proper checks in
setmlme_assoc_adhoc() which can lead to copies beyond the end
of the user supplied buffer.
The ssid is a fixed size array for the ioctl and the argument
to setmlme_assoc_adhoc().
In addition to an ssid_len check of 0 also error in case the
ssid_len is larger than the size of the ssid array to prevent
problems.
PR: 254737
Reported by: Tommaso (cutesmilee.research protonmail.com)
(cherry picked from commit 526370fb85db4b659cff4625eb2f379acaa4a1a8)
(cherry picked from commit 0525ece3554edce14fa68a7fb61078ae2110c44b)
(cherry picked from commit ab5678c6c0d0b28feafdb2fd397866d6088f37d8)
(cherry picked from commit f4d0e8787a09f4cdfb856924aaca97f1c78b65b1)
Approved by: so
Security: FreeBSD-SA-22:02.wifi
---
sys/net80211/ieee80211_ioctl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c
index b5e79f2ef07f..7d5f36dc31cc 100644
--- a/sys/net80211/ieee80211_ioctl.c
+++ b/sys/net80211/ieee80211_ioctl.c
@@ -1595,7 +1595,7 @@ setmlme_assoc_adhoc(struct ieee80211vap *vap,
("expected opmode IBSS or AHDEMO not %s",
ieee80211_opmode_name[vap->iv_opmode]));
- if (ssid_len == 0)
+ if (ssid_len == 0 || ssid_len > IEEE80211_NWID_LEN)
return EINVAL;
sr = IEEE80211_MALLOC(sizeof(*sr), M_TEMP,