diff options
| author | Zihan Xi <zihanx@nebusec.ai> | 2026-09-18 05:26:51 +0000 |
|---|---|---|
| committer | Johannes Berg <johannes.berg@intel.com> | 2026-09-21 16:30:25 +0200 |
| commit | ee3aadc43ea69d98f666431e787137ac0badbb85 (patch) | |
| tree | 63c29183be1ebc6fb38408ac8f799c2d3ee95499 /drivers/net/wireless/intersil | |
| parent | 5e4f3509793b4db2c0835340224743db680e861f (diff) | |
wifi: mac80211: fix mesh fast xmit path deletion UAF
mesh_fast_tx_cache() stores raw mesh_path pointers. Path deletion
flushes the cache and then frees the path with kfree_rcu(), but a
lookup that already holds the path can insert a new cache entry
after the flush. The cache then points at freed memory.
Set MESH_PATH_DELETED before flushing, and skip inserting a cache
entry if the path or MPP path is already deleted. Check this under
the cache walk lock so it is ordered with the flush. Use WRITE_ONCE()
for the deletion flag updates because the cache check reads flags
without taking state_lock.
Fixes: d5edb9ae8d56 ("wifi: mac80211: mesh fast xmit support")
Cc: stable@vger.kernel.org
Reported-by: Vega <vega@nebusec.ai>
Assisted-by: LLM
Co-developed-by: Luxing Yin <root@tr0jan.top>
Signed-off-by: Luxing Yin <root@tr0jan.top>
Signed-off-by: Zihan Xi <zihanx@nebusec.ai>
Link: https://patch.msgid.link/1daa7a98199fe6965c2da7c42717073a6fd39a0b.1789615568.git.zihanx@nebusec.ai
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/intersil')
0 files changed, 0 insertions, 0 deletions
