]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
wifi: nl80211: reject iftype change with mesh ID change
authorJohannes Berg <johannes.berg@intel.com>
Wed, 14 Feb 2024 19:08:35 +0000 (20:08 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 6 Mar 2024 14:48:40 +0000 (14:48 +0000)
commit177d574be4b58f832354ab1ef5a297aa0c9aa2df
tree962da066932724f1d01a0326a047a90786d33e4d
parentad8ff8cff38d12f8da1f13b55dc634fcfb55b773
wifi: nl80211: reject iftype change with mesh ID change

commit f78c1375339a291cba492a70eaf12ec501d28a8e upstream.

It's currently possible to change the mesh ID when the
interface isn't yet in mesh mode, at the same time as
changing it into mesh mode. This leads to an overwrite
of data in the wdev->u union for the interface type it
currently has, causing cfg80211_change_iface() to do
wrong things when switching.

We could probably allow setting an interface to mesh
while setting the mesh ID at the same time by doing a
different order of operations here, but realistically
there's no userspace that's going to do this, so just
disallow changes in iftype when setting mesh ID.

Cc: stable@vger.kernel.org
Fixes: 29cbe68c516a ("cfg80211/mac80211: add mesh join/leave commands")
Reported-by: syzbot+dd4779978217b1973180@syzkaller.appspotmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/wireless/nl80211.c