| From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2024-40942: wifi: mac80211: mesh: Fix leak of mesh_preq_queue objects |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| wifi: mac80211: mesh: Fix leak of mesh_preq_queue objects |
| |
| The hwmp code use objects of type mesh_preq_queue, added to a list in |
| ieee80211_if_mesh, to keep track of mpath we need to resolve. If the mpath |
| gets deleted, ex mesh interface is removed, the entries in that list will |
| never get cleaned. Fix this by flushing all corresponding items of the |
| preq_queue in mesh_path_flush_pending(). |
| |
| This should take care of KASAN reports like this: |
| |
| unreferenced object 0xffff00000668d800 (size 128): |
| comm "kworker/u8:4", pid 67, jiffies 4295419552 (age 1836.444s) |
| hex dump (first 32 bytes): |
| 00 1f 05 09 00 00 ff ff 00 d5 68 06 00 00 ff ff ..........h..... |
| 8e 97 ea eb 3e b8 01 00 00 00 00 00 00 00 00 00 ....>........... |
| backtrace: |
| [<000000007302a0b6>] __kmem_cache_alloc_node+0x1e0/0x35c |
| [<00000000049bd418>] kmalloc_trace+0x34/0x80 |
| [<0000000000d792bb>] mesh_queue_preq+0x44/0x2a8 |
| [<00000000c99c3696>] mesh_nexthop_resolve+0x198/0x19c |
| [<00000000926bf598>] ieee80211_xmit+0x1d0/0x1f4 |
| [<00000000fc8c2284>] __ieee80211_subif_start_xmit+0x30c/0x764 |
| [<000000005926ee38>] ieee80211_subif_start_xmit+0x9c/0x7a4 |
| [<000000004c86e916>] dev_hard_start_xmit+0x174/0x440 |
| [<0000000023495647>] __dev_queue_xmit+0xe24/0x111c |
| [<00000000cfe9ca78>] batadv_send_skb_packet+0x180/0x1e4 |
| [<000000007bacc5d5>] batadv_v_elp_periodic_work+0x2f4/0x508 |
| [<00000000adc3cd94>] process_one_work+0x4b8/0xa1c |
| [<00000000b36425d1>] worker_thread+0x9c/0x634 |
| [<0000000005852dd5>] kthread+0x1bc/0x1c4 |
| [<000000005fccd770>] ret_from_fork+0x10/0x20 |
| unreferenced object 0xffff000009051f00 (size 128): |
| comm "kworker/u8:4", pid 67, jiffies 4295419553 (age 1836.440s) |
| hex dump (first 32 bytes): |
| 90 d6 92 0d 00 00 ff ff 00 d8 68 06 00 00 ff ff ..........h..... |
| 36 27 92 e4 02 e0 01 00 00 58 79 06 00 00 ff ff 6'.......Xy..... |
| backtrace: |
| [<000000007302a0b6>] __kmem_cache_alloc_node+0x1e0/0x35c |
| [<00000000049bd418>] kmalloc_trace+0x34/0x80 |
| [<0000000000d792bb>] mesh_queue_preq+0x44/0x2a8 |
| [<00000000c99c3696>] mesh_nexthop_resolve+0x198/0x19c |
| [<00000000926bf598>] ieee80211_xmit+0x1d0/0x1f4 |
| [<00000000fc8c2284>] __ieee80211_subif_start_xmit+0x30c/0x764 |
| [<000000005926ee38>] ieee80211_subif_start_xmit+0x9c/0x7a4 |
| [<000000004c86e916>] dev_hard_start_xmit+0x174/0x440 |
| [<0000000023495647>] __dev_queue_xmit+0xe24/0x111c |
| [<00000000cfe9ca78>] batadv_send_skb_packet+0x180/0x1e4 |
| [<000000007bacc5d5>] batadv_v_elp_periodic_work+0x2f4/0x508 |
| [<00000000adc3cd94>] process_one_work+0x4b8/0xa1c |
| [<00000000b36425d1>] worker_thread+0x9c/0x634 |
| [<0000000005852dd5>] kthread+0x1bc/0x1c4 |
| [<000000005fccd770>] ret_from_fork+0x10/0x20 |
| |
| The Linux kernel CVE team has assigned CVE-2024-40942 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 2.6.26 with commit 050ac52cbe1f3de2fb0d06f02c7919ae1f691c9e and fixed in 4.19.317 with commit 377dbb220edc8421b7960691876c5b3bef62f89b |
| Issue introduced in 2.6.26 with commit 050ac52cbe1f3de2fb0d06f02c7919ae1f691c9e and fixed in 5.4.279 with commit ec79670eae430b3ffb7e0a6417ad7657728b8f95 |
| Issue introduced in 2.6.26 with commit 050ac52cbe1f3de2fb0d06f02c7919ae1f691c9e and fixed in 5.10.221 with commit 7518e20a189f8659b8b83969db4d33a4068fcfc3 |
| Issue introduced in 2.6.26 with commit 050ac52cbe1f3de2fb0d06f02c7919ae1f691c9e and fixed in 5.15.162 with commit c4c865f971fd4a255208f57ef04d814c2ae9e0dc |
| Issue introduced in 2.6.26 with commit 050ac52cbe1f3de2fb0d06f02c7919ae1f691c9e and fixed in 6.1.95 with commit 617dadbfb2d3e152c5753e28356d189c9d6f33c0 |
| Issue introduced in 2.6.26 with commit 050ac52cbe1f3de2fb0d06f02c7919ae1f691c9e and fixed in 6.6.35 with commit 63d5f89bb5664d60edbf8cf0df911aaae8ed96a4 |
| Issue introduced in 2.6.26 with commit 050ac52cbe1f3de2fb0d06f02c7919ae1f691c9e and fixed in 6.9.6 with commit d81e244af521de63ad2883e17571b789c39b6549 |
| Issue introduced in 2.6.26 with commit 050ac52cbe1f3de2fb0d06f02c7919ae1f691c9e and fixed in 6.10 with commit b7d7f11a291830fdf69d3301075dd0fb347ced84 |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2024-40942 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| net/mac80211/mesh_pathtbl.c |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/377dbb220edc8421b7960691876c5b3bef62f89b |
| https://git.kernel.org/stable/c/ec79670eae430b3ffb7e0a6417ad7657728b8f95 |
| https://git.kernel.org/stable/c/7518e20a189f8659b8b83969db4d33a4068fcfc3 |
| https://git.kernel.org/stable/c/c4c865f971fd4a255208f57ef04d814c2ae9e0dc |
| https://git.kernel.org/stable/c/617dadbfb2d3e152c5753e28356d189c9d6f33c0 |
| https://git.kernel.org/stable/c/63d5f89bb5664d60edbf8cf0df911aaae8ed96a4 |
| https://git.kernel.org/stable/c/d81e244af521de63ad2883e17571b789c39b6549 |
| https://git.kernel.org/stable/c/b7d7f11a291830fdf69d3301075dd0fb347ced84 |