CVE-2025-40000

Source
https://nvd.nist.gov/vuln/detail/CVE-2025-40000
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-40000.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2025-40000
Downstream
Related
Published
2025-10-15T07:59:14Z
Modified
2025-10-22T17:32:54.861892Z
Summary
wifi: rtw89: fix use-after-free in rtw89_core_tx_kick_off_and_wait()
Details

In the Linux kernel, the following vulnerability has been resolved:

wifi: rtw89: fix use-after-free in rtw89coretxkickoffandwait()

There is a bug observed when rtw89coretxkickoffandwait() tries to access already freed skb_data:

BUG: KFENCE: use-after-free write in rtw89coretxkickoffandwait 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: eventsunbound cfg80211wiphy_work [cfg80211]

Use-after-free write at 0x0000000020309d9d (in kfence-#251): rtw89coretxkickoffandwait drivers/net/wireless/realtek/rtw89/core.c:1110 rtw89corescancomplete drivers/net/wireless/realtek/rtw89/core.c:5338 rtw89hwscancompletecb drivers/net/wireless/realtek/rtw89/fw.c:7979 rtw89chanctxproceedcb drivers/net/wireless/realtek/rtw89/chan.c:3165 rtw89chanctxproceed drivers/net/wireless/realtek/rtw89/chan.h:141 rtw89hwscancomplete drivers/net/wireless/realtek/rtw89/fw.c:8012 rtw89macc2hscanofldrsp drivers/net/wireless/realtek/rtw89/mac.c:5059 rtw89fwc2hwork drivers/net/wireless/realtek/rtw89/fw.c:6758 processonework kernel/workqueue.c:3241 workerthread kernel/workqueue.c:3400 kthread kernel/kthread.c:463 retfromfork arch/x86/kernel/process.c:154 retfromforkasm arch/x86/entry/entry_64.S:258

kfence-#251: 0x0000000056e2393d-0x000000009943cb62, size=232, cache=skbuffheadcache

allocated by task 41377 on cpu 6 at 77869.159548s (0.009551s ago): _allocskb net/core/skbuff.c:659 _netdevallocskb net/core/skbuff.c:734 ieee80211nullfuncget net/mac80211/tx.c:5844 rtw89coresendnullfunc drivers/net/wireless/realtek/rtw89/core.c:3431 rtw89corescancomplete drivers/net/wireless/realtek/rtw89/core.c:5338 rtw89hwscancompletecb drivers/net/wireless/realtek/rtw89/fw.c:7979 rtw89chanctxproceedcb drivers/net/wireless/realtek/rtw89/chan.c:3165 rtw89chanctxproceed drivers/net/wireless/realtek/rtw89/chan.c:3194 rtw89hwscancomplete drivers/net/wireless/realtek/rtw89/fw.c:8012 rtw89macc2hscanofldrsp drivers/net/wireless/realtek/rtw89/mac.c:5059 rtw89fwc2hwork drivers/net/wireless/realtek/rtw89/fw.c:6758 processonework kernel/workqueue.c:3241 workerthread kernel/workqueue.c:3400 kthread kernel/kthread.c:463 retfromfork arch/x86/kernel/process.c:154 retfromforkasm arch/x86/entry/entry_64.S:258

freed by task 1045 on cpu 9 at 77869.168393s (0.001557s ago): ieee80211txstatusskb net/mac80211/status.c:1117 rtw89pcireleasetxwdskb drivers/net/wireless/realtek/rtw89/pci.c:564 rtw89pcireleasetxskbs.isra.0 drivers/net/wireless/realtek/rtw89/pci.c:651 rtw89pcireleasetx drivers/net/wireless/realtek/rtw89/pci.c:676 rtw89pcinapipoll drivers/net/wireless/realtek/rtw89/pci.c:4238 _napipoll net/core/dev.c:7495 netrxaction net/core/dev.c:7557 net/core/dev.c:7684 handlesoftirqs kernel/softirq.c:580 dosoftirq.part.0 kernel/softirq.c:480 _localbhenableip kernel/softirq.c:407 rtw89pciinterruptthreadfn drivers/net/wireless/realtek/rtw89/pci.c:927 irqthreadfn kernel/irq/manage.c:1133 irqthread kernel/irq/manage.c:1257 kthread kernel/kthread.c:463 retfromfork arch/x86/kernel/process.c:154 retfromforkasm 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

rtw89coretxkickoffandwait() rcuassignpointer(skbdata->wait, wait) /* start waiting */ waitforcompletiontimeout() rtw89pcitxstatus() rtw89coretxwaitcomplete() rcuread_lock() /* signals completion and

---truncated---

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
1ae5ca615285d5d4f72d1de464716d85dffef19f
Fixed
895cccf639ac015f3d5f993218cf098db82ac145
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
1ae5ca615285d5d4f72d1de464716d85dffef19f
Fixed
f21f530b03b4b23448edb531a0cfea434cb76bb4
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
1ae5ca615285d5d4f72d1de464716d85dffef19f
Fixed
bdb3c41b358cf87d99e39d393e164f9e4a6088e6
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
1ae5ca615285d5d4f72d1de464716d85dffef19f
Fixed
3e31a6bc07312b448fad3b45de578471f86f0e77

Affected versions

v6.*

v6.10
v6.10-rc1
v6.10-rc2
v6.10-rc3
v6.10-rc4
v6.10-rc5
v6.10-rc6
v6.10-rc7
v6.11
v6.11-rc1
v6.11-rc2
v6.11-rc3
v6.11-rc4
v6.11-rc5
v6.11-rc6
v6.11-rc7
v6.12
v6.12-rc1
v6.12-rc2
v6.12-rc3
v6.12-rc4
v6.12-rc5
v6.12-rc6
v6.12-rc7
v6.12.1
v6.12.10
v6.12.11
v6.12.12
v6.12.13
v6.12.14
v6.12.15
v6.12.16
v6.12.17
v6.12.18
v6.12.19
v6.12.2
v6.12.20
v6.12.21
v6.12.22
v6.12.23
v6.12.24
v6.12.25
v6.12.26
v6.12.27
v6.12.28
v6.12.29
v6.12.3
v6.12.30
v6.12.31
v6.12.32
v6.12.33
v6.12.34
v6.12.35
v6.12.36
v6.12.37
v6.12.38
v6.12.39
v6.12.4
v6.12.40
v6.12.41
v6.12.42
v6.12.43
v6.12.44
v6.12.45
v6.12.46
v6.12.47
v6.12.48
v6.12.49
v6.12.5
v6.12.50
v6.12.51
v6.12.6
v6.12.7
v6.12.8
v6.12.9
v6.13
v6.13-rc1
v6.13-rc2
v6.13-rc3
v6.13-rc4
v6.13-rc5
v6.13-rc6
v6.13-rc7
v6.14
v6.14-rc1
v6.14-rc2
v6.14-rc3
v6.14-rc4
v6.14-rc5
v6.14-rc6
v6.14-rc7
v6.15
v6.15-rc1
v6.15-rc2
v6.15-rc3
v6.15-rc4
v6.15-rc5
v6.15-rc6
v6.15-rc7
v6.16
v6.16-rc1
v6.16-rc2
v6.16-rc3
v6.16-rc4
v6.16-rc5
v6.16-rc6
v6.16-rc7
v6.16.1
v6.16.10
v6.16.11
v6.16.2
v6.16.3
v6.16.4
v6.16.5
v6.16.6
v6.16.7
v6.16.8
v6.16.9
v6.17
v6.17-rc1
v6.17-rc2
v6.17-rc3
v6.17-rc4
v6.17-rc5
v6.17-rc6
v6.17-rc7
v6.3
v6.3-rc5
v6.3-rc6
v6.3-rc7
v6.4
v6.4-rc1
v6.4-rc2
v6.4-rc3
v6.4-rc4
v6.4-rc5
v6.4-rc6
v6.4-rc7
v6.5
v6.5-rc1
v6.5-rc2
v6.5-rc3
v6.5-rc4
v6.5-rc5
v6.5-rc6
v6.5-rc7
v6.6
v6.6-rc1
v6.6-rc2
v6.6-rc3
v6.6-rc4
v6.6-rc5
v6.6-rc6
v6.6-rc7
v6.7
v6.7-rc1
v6.7-rc2
v6.7-rc3
v6.7-rc4
v6.7-rc5
v6.7-rc6
v6.7-rc7
v6.7-rc8
v6.8
v6.8-rc1
v6.8-rc2
v6.8-rc3
v6.8-rc4
v6.8-rc5
v6.8-rc6
v6.8-rc7
v6.9
v6.9-rc1
v6.9-rc2
v6.9-rc3
v6.9-rc4
v6.9-rc5
v6.9-rc6
v6.9-rc7

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.4.0
Fixed
6.12.52
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.16.12
Type
ECOSYSTEM
Events
Introduced
6.17.0
Fixed
6.17.1