CVE-2022-50408
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
18/09/2025
Last modified:
18/09/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
wifi: brcmfmac: fix use-after-free bug in brcmf_netdev_start_xmit()<br />
<br />
> ret = brcmf_proto_tx_queue_data(drvr, ifp->ifidx, skb);<br />
<br />
may be schedule, and then complete before the line<br />
<br />
> ndev->stats.tx_bytes += skb->len;<br />
<br />
[ 46.912801] ==================================================================<br />
[ 46.920552] BUG: KASAN: use-after-free in brcmf_netdev_start_xmit+0x718/0x8c8 [brcmfmac]<br />
[ 46.928673] Read of size 4 at addr ffffff803f5882e8 by task systemd-resolve/328<br />
[ 46.935991]<br />
[ 46.937514] CPU: 1 PID: 328 Comm: systemd-resolve Tainted: G O 5.4.199-[REDACTED] #1<br />
[ 46.947255] Hardware name: [REDACTED]<br />
[ 46.954568] Call trace:<br />
[ 46.957037] dump_backtrace+0x0/0x2b8<br />
[ 46.960719] show_stack+0x24/0x30<br />
[ 46.964052] dump_stack+0x128/0x194<br />
[ 46.967557] print_address_description.isra.0+0x64/0x380<br />
[ 46.972877] __kasan_report+0x1d4/0x240<br />
[ 46.976723] kasan_report+0xc/0x18<br />
[ 46.980138] __asan_report_load4_noabort+0x18/0x20<br />
[ 46.985027] brcmf_netdev_start_xmit+0x718/0x8c8 [brcmfmac]<br />
[ 46.990613] dev_hard_start_xmit+0x1bc/0xda0<br />
[ 46.994894] sch_direct_xmit+0x198/0xd08<br />
[ 46.998827] __qdisc_run+0x37c/0x1dc0<br />
[ 47.002500] __dev_queue_xmit+0x1528/0x21f8<br />
[ 47.006692] dev_queue_xmit+0x24/0x30<br />
[ 47.010366] neigh_resolve_output+0x37c/0x678<br />
[ 47.014734] ip_finish_output2+0x598/0x2458<br />
[ 47.018927] __ip_finish_output+0x300/0x730<br />
[ 47.023118] ip_output+0x2e0/0x430<br />
[ 47.026530] ip_local_out+0x90/0x140<br />
[ 47.030117] igmpv3_sendpack+0x14c/0x228<br />
[ 47.034049] igmpv3_send_cr+0x384/0x6b8<br />
[ 47.037895] igmp_ifc_timer_expire+0x4c/0x118<br />
[ 47.042262] call_timer_fn+0x1cc/0xbe8<br />
[ 47.046021] __run_timers+0x4d8/0xb28<br />
[ 47.049693] run_timer_softirq+0x24/0x40<br />
[ 47.053626] __do_softirq+0x2c0/0x117c<br />
[ 47.057387] irq_exit+0x2dc/0x388<br />
[ 47.060715] __handle_domain_irq+0xb4/0x158<br />
[ 47.064908] gic_handle_irq+0x58/0xb0<br />
[ 47.068581] el0_irq_naked+0x50/0x5c<br />
[ 47.072162]<br />
[ 47.073665] Allocated by task 328:<br />
[ 47.077083] save_stack+0x24/0xb0<br />
[ 47.080410] __kasan_kmalloc.isra.0+0xc0/0xe0<br />
[ 47.084776] kasan_slab_alloc+0x14/0x20<br />
[ 47.088622] kmem_cache_alloc+0x15c/0x468<br />
[ 47.092643] __alloc_skb+0xa4/0x498<br />
[ 47.096142] igmpv3_newpack+0x158/0xd78<br />
[ 47.099987] add_grhead+0x210/0x288<br />
[ 47.103485] add_grec+0x6b0/0xb70<br />
[ 47.106811] igmpv3_send_cr+0x2e0/0x6b8<br />
[ 47.110657] igmp_ifc_timer_expire+0x4c/0x118<br />
[ 47.115027] call_timer_fn+0x1cc/0xbe8<br />
[ 47.118785] __run_timers+0x4d8/0xb28<br />
[ 47.122457] run_timer_softirq+0x24/0x40<br />
[ 47.126389] __do_softirq+0x2c0/0x117c<br />
[ 47.130142]<br />
[ 47.131643] Freed by task 180:<br />
[ 47.134712] save_stack+0x24/0xb0<br />
[ 47.138041] __kasan_slab_free+0x108/0x180<br />
[ 47.142146] kasan_slab_free+0x10/0x18<br />
[ 47.145904] slab_free_freelist_hook+0xa4/0x1b0<br />
[ 47.150444] kmem_cache_free+0x8c/0x528<br />
[ 47.154292] kfree_skbmem+0x94/0x108<br />
[ 47.157880] consume_skb+0x10c/0x5a8<br />
[ 47.161466] __dev_kfree_skb_any+0x88/0xa0<br />
[ 47.165598] brcmu_pkt_buf_free_skb+0x44/0x68 [brcmutil]<br />
[ 47.171023] brcmf_txfinalize+0xec/0x190 [brcmfmac]<br />
[ 47.176016] brcmf_proto_bcdc_txcomplete+0x1c0/0x210 [brcmfmac]<br />
[ 47.182056] brcmf_sdio_sendfromq+0x8dc/0x1e80 [brcmfmac]<br />
[ 47.187568] brcmf_sdio_dpc+0xb48/0x2108 [brcmfmac]<br />
[ 47.192529] brcmf_sdio_dataworker+0xc8/0x238 [brcmfmac]<br />
[ 47.197859] process_one_work+0x7fc/0x1a80<br />
[ 47.201965] worker_thread+0x31c/0xc40<br />
[ 47.205726] kthread+0x2d8/0x370<br />
[ 47.208967] ret_from_fork+0x10/0x18<br />
[ 47.212546]<br />
[ 47.214051] The buggy address belongs to the object at ffffff803f588280<br />
[ 47.214051] which belongs to the cache skbuff_head_cache of size 208<br />
[ 47.227086] The buggy address is located 104 bytes inside of<br />
[ 47.227086] 208-byte region [ffffff803f588280, ffffff803f588350)<br />
[ 47.238814] The buggy address belongs to the page:<br />
[ 47.243618] page:ffffffff00dd6200 refcount:1 mapcou<br />
---truncated---
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/1613a7b24f1a7467cb727ba3ec77c9a808383560
- https://git.kernel.org/stable/c/232d59eca07f6ea27307022a33d226aff373bd02
- https://git.kernel.org/stable/c/27574a3f421c3a1694d0207f37c6bbf23d66978e
- https://git.kernel.org/stable/c/3f42faf6db431e04bf942d2ebe3ae88975723478
- https://git.kernel.org/stable/c/49c742afd60f552fce7799287080db02bffe1db2
- https://git.kernel.org/stable/c/c369836cff98d3877f98c98e15c0151462812d96
- https://git.kernel.org/stable/c/d79f4d903e14dde822c60b5fd3bedc5a289d25df
- https://git.kernel.org/stable/c/e01d96494a9de0f48b1167f0494f6d929fa773ed