mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-09-22 09:34:56 +02:00
wifi: nl80211: validate nested MBSSID IE blobs
[ Upstream commit7f4b018123] Validate each nested NL80211_ATTR_MBSSID_ELEMS entry as a well-formed information-element stream before storing it for beacon construction. RNR parsing already validates each nested blob with validate_ie_attr() before storing it. Apply the same syntactic IE validation to MBSSID entries before counting and copying their data and length pointers. Fixes:dc1e3cb8da("nl80211: MBSSID and EMA support in AP mode") Assisted-by: Codex:gpt-5.5 Assisted-by: Claude:claude-opus-4.8 Signed-off-by: Zhao Li <enderaoelyther@gmail.com> Link: https://patch.msgid.link/20260612131854.43575-3-enderaoelyther@gmail.com Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
fa9592ef7d
commit
2d372cb063
+10
-2
@@ -5453,7 +5453,8 @@ static int nl80211_parse_mbssid_config(struct wiphy *wiphy,
|
||||
}
|
||||
|
||||
static struct cfg80211_mbssid_elems *
|
||||
nl80211_parse_mbssid_elems(struct wiphy *wiphy, struct nlattr *attrs)
|
||||
nl80211_parse_mbssid_elems(struct wiphy *wiphy, struct nlattr *attrs,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
struct nlattr *nl_elems;
|
||||
struct cfg80211_mbssid_elems *elems;
|
||||
@@ -5464,6 +5465,12 @@ nl80211_parse_mbssid_elems(struct wiphy *wiphy, struct nlattr *attrs)
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
nla_for_each_nested(nl_elems, attrs, rem_elems) {
|
||||
int ret;
|
||||
|
||||
ret = validate_ie_attr(nl_elems, extack);
|
||||
if (ret)
|
||||
return ERR_PTR(ret);
|
||||
|
||||
if (num_elems >= 255)
|
||||
return ERR_PTR(-EINVAL);
|
||||
num_elems++;
|
||||
@@ -5635,7 +5642,8 @@ static int nl80211_parse_beacon(struct cfg80211_registered_device *rdev,
|
||||
if (attrs[NL80211_ATTR_MBSSID_ELEMS]) {
|
||||
struct cfg80211_mbssid_elems *mbssid =
|
||||
nl80211_parse_mbssid_elems(&rdev->wiphy,
|
||||
attrs[NL80211_ATTR_MBSSID_ELEMS]);
|
||||
attrs[NL80211_ATTR_MBSSID_ELEMS],
|
||||
extack);
|
||||
|
||||
if (IS_ERR(mbssid))
|
||||
return PTR_ERR(mbssid);
|
||||
|
||||
Reference in New Issue
Block a user