Re: [PATCH v2] wifi: cfg80211: Fix UAF in ieee80211_scan_rx()
From: Siddh Raman Pant
Date: Sat Aug 13 2022 - 12:20:56 EST
On Sat, 13 Aug 2022 00:55:09 +0530 Jakub Kicinski wrote:
> Similarly to Greg, I'm not very familiar with the code base but one
> sure way to move things forward would be to point out a commit which
> broke things and put it in a Fixes tag. Much easier to validate a fix
> by looking at where things went wrong.
Thanks, I now looked at some history.
The following commit on 28 Sep 2020 put the kfree call before NULLing:
c8cb5b854b40 ("nl80211/cfg80211: support 6 GHz scanning")
The following commit on 19 Nov 2014 introduces RCU:
6ea0a69ca21b ("mac80211: rcu-ify scan and scheduled scan request pointers")
The kfree call wasn't "rcu-ified" in this commit, and neither were
RCU heads added.
The following commit on 18 Dec 2014 added RCU head for sched_scan_req:
31a60ed1e95a ("nl80211: Convert sched_scan_req pointer to RCU pointer")
It seems a similar thing might not have been done for scan_req, but I
could have also missed commits.
So what should go into the fixes tag, if any? Probably 6ea0a69ca21b?
Also, I probably should use RCU_INIT_POINTER in this patch. Or should
I make a patch somewhat like 31a60ed1e95a?
Thanks,
Siddh