aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2021-10-06 18:41:37 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2021-11-19 00:01:25 +0000
commitab5678c6c0d0b28feafdb2fd397866d6088f37d8 (patch)
tree4d9ed7552d6c2dcb73c7a977bc136bed87c08ecf
parent8b2ba742cc2c732bc4bc1d43f8256adce06657d0 (diff)
downloadsrc-ab5678c6c0d0b28feafdb2fd397866d6088f37d8.tar.gz
src-ab5678c6c0d0b28feafdb2fd397866d6088f37d8.zip
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)
-rw-r--r--sys/net80211/ieee80211_ioctl.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c
index 2fef9ac0084a..419518eb1224 100644
--- a/sys/net80211/ieee80211_ioctl.c
+++ b/sys/net80211/ieee80211_ioctl.c
@@ -1591,7 +1591,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,