In the Linux kernel, the following vulnerability has been resolved:
wifi: rtw89: fix use-after-free in rtw89_core_tx_kick_off_and_wait()
There is a bug observed when rtw89_core_tx_kick_off_and_wait() tries to access already freed skb_data:
BUG: KFENCE: use-after-free write in rtw89_core_tx_kick_off_and_wait drivers/net/wireless/realtek/rtw89/core.c:1110
CPU: 6 UID: 0 PID: 41377 Comm: kworker/u64:24 Not tainted 6.17.0-rc1+ #1 PREEMPT(lazy) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS edk2-20250523-14.fc42 05/23/2025 Workqueue: events_unbound cfg80211_wiphy_work [cfg80211]
Use-after-free write at 0x0000000020309d9d (in kfence-#251): rtw89_core_tx_kick_off_and_wait drivers/net/wireless/realtek/rtw89/core.c:1110 rtw89_core_scan_complete drivers/net/wireless/realtek/rtw89/core.c:5338 rtw89_hw_scan_complete_cb drivers/net/wireless/realtek/rtw89/fw.c:7979 rtw89_chanctx_proceed_cb drivers/net/wireless/realtek/rtw89/chan.c:3165 rtw89_chanctx_proceed drivers/net/wireless/realtek/rtw89/chan.h:141 rtw89_hw_scan_complete drivers/net/wireless/realtek/rtw89/fw.c:8012 rtw89_mac_c2h_scanofld_rsp drivers/net/wireless/realtek/rtw89/mac.c:5059 rtw89_fw_c2h_work drivers/net/wireless/realtek/rtw89/fw.c:6758 process_one_work kernel/workqueue.c:3241 worker_thread kernel/workqueue.c:3400 kthread kernel/kthread.c:463 ret_from_fork arch/x86/kernel/process.c:154 ret_from_fork_asm arch/x86/entry/entry_64.S:258
kfence-#251: 0x0000000056e2393d-0x000000009943cb62, size=232, cache=skbuff_head_cache
allocated by task 41377 on cpu 6 at 77869.159548s (0.009551s ago): __alloc_skb net/core/skbuff.c:659 __netdev_alloc_skb net/core/skbuff.c:734 ieee80211_nullfunc_get net/mac80211/tx.c:5844 rtw89_core_send_nullfunc drivers/net/wireless/realtek/rtw89/core.c:3431 rtw89_core_scan_complete drivers/net/wireless/realtek/rtw89/core.c:5338 rtw89_hw_scan_complete_cb drivers/net/wireless/realtek/rtw89/fw.c:7979 rtw89_chanctx_proceed_cb drivers/net/wireless/realtek/rtw89/chan.c:3165 rtw89_chanctx_proceed drivers/net/wireless/realtek/rtw89/chan.c:3194 rtw89_hw_scan_complete drivers/net/wireless/realtek/rtw89/fw.c:8012 rtw89_mac_c2h_scanofld_rsp drivers/net/wireless/realtek/rtw89/mac.c:5059 rtw89_fw_c2h_work drivers/net/wireless/realtek/rtw89/fw.c:6758 process_one_work kernel/workqueue.c:3241 worker_thread kernel/workqueue.c:3400 kthread kernel/kthread.c:463 ret_from_fork arch/x86/kernel/process.c:154 ret_from_fork_asm arch/x86/entry/entry_64.S:258
freed by task 1045 on cpu 9 at 77869.168393s (0.001557s ago): ieee80211_tx_status_skb net/mac80211/status.c:1117 rtw89_pci_release_txwd_skb drivers/net/wireless/realtek/rtw89/pci.c:564 rtw89_pci_release_tx_skbs.isra.0 drivers/net/wireless/realtek/rtw89/pci.c:651 rtw89_pci_release_tx drivers/net/wireless/realtek/rtw89/pci.c:676 rtw89_pci_napi_poll drivers/net/wireless/realtek/rtw89/pci.c:4238 __napi_poll net/core/dev.c:7495 net_rx_action net/core/dev.c:7557 net/core/dev.c:7684 handle_softirqs kernel/softirq.c:580 do_softirq.part.0 kernel/softirq.c:480 __local_bh_enable_ip kernel/softirq.c:407 rtw89_pci_interrupt_threadfn drivers/net/wireless/realtek/rtw89/pci.c:927 irq_thread_fn kernel/irq/manage.c:1133 irq_thread kernel/irq/manage.c:1257 kthread kernel/kthread.c:463 ret_from_fork arch/x86/kernel/process.c:154 ret_from_fork_asm arch/x86/entry/entry_64.S:258
It is a consequence of a race between the waiting and the signaling side of the completion:
Waiting thread Completing thread
rtw89_core_tx_kick_off_and_wait() rcu_assign_pointer(skb_data->wait, wait) /* start waiting */ wait_for_completion_timeout() rtw89_pci_tx_status() rtw89_core_tx_wait_complete() rcu_read_lock() /* signals completion and ---truncated---
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Oct 15, 2025 |
| Suse | — | Upgrade kernel-obs-buildUpgrade kernel-default-baseUpgrade kernel-docsUpgrade kernel-defaultUpgrade kernel-develUpgrade kernel-macrosUpgrade kernel-64kb-develUpgrade reiserfs-kmp-defaultUpgrade kernel-default-extraUpgrade kernel-zfcpdumpUpgrade kernel-symsUpgrade kernel-64kbUpgrade kernel-default-develUpgrade kernel-source | Dec 5, 2025 | Nov 11, 2025 |
| Ubuntu | — | Upgrade linux-image-aws-6.8Upgrade linux-image-aws-fips-6.8Upgrade linux-image-generic-64k-6.8Upgrade linux-image-kvmUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-oem-22.04bUpgrade linux-image-virtual-6.8Upgrade linux-image-6.8.0-1048-gke-64kUpgrade linux-image-raspi-realtimeUpgrade linux-image-xilinxUpgrade linux-image-aws-64k-6.8Upgrade linux-image-generic-lpaeUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-1048-gkeUpgrade linux-image-fips-6.8Upgrade linux-image-lowlatencyUpgrade linux-image-generic-64kUpgrade linux-image-azure-lts-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-ibm-6.8Upgrade linux-image-6.8.0-1052-gcp-fipsUpgrade linux-image-raspiUpgrade linux-image-ibm-classicUpgrade linux-image-generic-6.8Upgrade linux-image-gke-64kUpgrade linux-image-nvidiaUpgrade linux-image-gcp-fipsUpgrade linux-image-oem-22.04Upgrade linux-image-6.8.0-2040-raspi-realtimeUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-oem-22.04aUpgrade linux-image-ibmUpgrade linux-image-6.8.0-1049-ibmUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.8.0-106-fipsUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-gke-6.8Upgrade linux-image-6.8.0-1047-oracle-64kUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.8.0-1050-aws-fipsUpgrade linux-image-azureUpgrade linux-image-azure-fips-6.8Upgrade linux-image-6.8.0-1050-awsUpgrade linux-image-azure-fipsUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-gcpUpgrade linux-image-oem-22.04cUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.1-1045-realtimeUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-6.8.0-106-genericUpgrade linux-image-awsUpgrade linux-image-6.8.0-1049-nvidia-64kUpgrade linux-image-6.8.0-1029-xilinxUpgrade linux-image-lowlatency-6.8Upgrade linux-image-xilinx-6.8Upgrade linux-image-realtime-6.8.1Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-aws-64kUpgrade linux-image-6.8.0-106-lowlatency-64kUpgrade linux-image-6.8.0-1052-azure-fipsUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-aws-lts-24.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-6.8.0-1049-nvidiaUpgrade linux-image-6.8.0-1047-oracleUpgrade linux-image-6.8.0-1049-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1049-nvidia-lowlatencyUpgrade linux-image-virtualUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-gcp-6.8Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-intel-iotgUpgrade linux-image-gke-64k-6.8Upgrade linux-image-oracleUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-gkeUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-raspi-6.8Upgrade linux-image-6.8.0-1052-gcpUpgrade linux-image-azure-6.8Upgrade linux-image-6.8.0-1035-gkeopUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-6.8.0-1052-gcp-64kUpgrade linux-image-realtimeUpgrade linux-image-gkeopUpgrade linux-image-oracle-6.8Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-genericUpgrade linux-image-gcp-64kUpgrade linux-image-fipsUpgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-1050-aws-64kUpgrade linux-image-oem-22.04dUpgrade linux-image-6.8.0-106-generic-64kUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.8.0-106-lowlatencyUpgrade linux-image-6.8.0-1050-raspiUpgrade linux-image-nvidia-lowlatency-64k | Oct 30, 2025 | Oct 15, 2025 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub