aboutsummaryrefslogtreecommitdiff
path: root/sys/net80211
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2022-04-05 22:58:28 +0000
committerEd Maste <emaste@FreeBSD.org>2022-04-05 22:58:28 +0000
commitfb8c87b4f3bfdfac014f9d894fe75fbad0391b24 (patch)
treed2e437ef1a181f0a28755633287495240fcf637c /sys/net80211
parentb0aa20bec5db244980a0248e24dd6b8e1e68c4d0 (diff)
downloadsrc-fb8c87b4f3bfdfac014f9d894fe75fbad0391b24.tar.gz
src-fb8c87b4f3bfdfac014f9d894fe75fbad0391b24.zip
net80211: validate Mesh ID length in ieee80211_parse_beacon
Reported by: m00nbsd working with Trend Micro Zero Day Initiative
Diffstat (limited to 'sys/net80211')
-rw-r--r--sys/net80211/ieee80211_input.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/net80211/ieee80211_input.c b/sys/net80211/ieee80211_input.c
index 516de781e23e..7406c92d6d0e 100644
--- a/sys/net80211/ieee80211_input.c
+++ b/sys/net80211/ieee80211_input.c
@@ -742,6 +742,12 @@ ieee80211_parse_beacon(struct ieee80211_node *ni, struct mbuf *m,
IEEE80211_VERIFY_LENGTH(scan->csa[1], 3 * sizeof(uint8_t),
scan->status |= IEEE80211_BPARSE_CSA_INVALID);
}
+#ifdef IEEE80211_SUPPORT_MESH
+ if (scan->meshid != NULL) {
+ IEEE80211_VERIFY_ELEMENT(scan->meshid, IEEE80211_MESHID_LEN,
+ scan->status |= IEEE80211_BPARSE_RATES_INVALID);
+ }
+#endif
/*
* Process HT ie's. This is complicated by our
* accepting both the standard ie's and the pre-draft