CVE-2025-39981
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
15/10/2025
Última modificación:
24/11/2025
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
Bluetooth: MGMT: Fix possible UAFs<br />
<br />
This attemps to fix possible UAFs caused by struct mgmt_pending being<br />
freed while still being processed like in the following trace, in order<br />
to fix mgmt_pending_valid is introduce and use to check if the<br />
mgmt_pending hasn&#39;t been removed from the pending list, on the complete<br />
callbacks it is used to check and in addtion remove the cmd from the list<br />
while holding mgmt_pending_lock to avoid TOCTOU problems since if the cmd<br />
is left on the list it can still be accessed and freed.<br />
<br />
BUG: KASAN: slab-use-after-free in mgmt_add_adv_patterns_monitor_sync+0x35/0x50 net/bluetooth/mgmt.c:5223<br />
Read of size 8 at addr ffff8880709d4dc0 by task kworker/u11:0/55<br />
<br />
CPU: 0 UID: 0 PID: 55 Comm: kworker/u11:0 Not tainted 6.16.4 #2 PREEMPT(full)<br />
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014<br />
Workqueue: hci0 hci_cmd_sync_work<br />
Call Trace:<br />
<br />
dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120<br />
print_address_description mm/kasan/report.c:378 [inline]<br />
print_report+0xca/0x240 mm/kasan/report.c:482<br />
kasan_report+0x118/0x150 mm/kasan/report.c:595<br />
mgmt_add_adv_patterns_monitor_sync+0x35/0x50 net/bluetooth/mgmt.c:5223<br />
hci_cmd_sync_work+0x210/0x3a0 net/bluetooth/hci_sync.c:332<br />
process_one_work kernel/workqueue.c:3238 [inline]<br />
process_scheduled_works+0xade/0x17b0 kernel/workqueue.c:3321<br />
worker_thread+0x8a0/0xda0 kernel/workqueue.c:3402<br />
kthread+0x711/0x8a0 kernel/kthread.c:464<br />
ret_from_fork+0x3fc/0x770 arch/x86/kernel/process.c:148<br />
ret_from_fork_asm+0x1a/0x30 home/kwqcheii/source/fuzzing/kernel/kasan/linux-6.16.4/arch/x86/entry/entry_64.S:245<br />
<br />
<br />
Allocated by task 12210:<br />
kasan_save_stack mm/kasan/common.c:47 [inline]<br />
kasan_save_track+0x3e/0x80 mm/kasan/common.c:68<br />
poison_kmalloc_redzone mm/kasan/common.c:377 [inline]<br />
__kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:394<br />
kasan_kmalloc include/linux/kasan.h:260 [inline]<br />
__kmalloc_cache_noprof+0x230/0x3d0 mm/slub.c:4364<br />
kmalloc_noprof include/linux/slab.h:905 [inline]<br />
kzalloc_noprof include/linux/slab.h:1039 [inline]<br />
mgmt_pending_new+0x65/0x1e0 net/bluetooth/mgmt_util.c:269<br />
mgmt_pending_add+0x35/0x140 net/bluetooth/mgmt_util.c:296<br />
__add_adv_patterns_monitor+0x130/0x200 net/bluetooth/mgmt.c:5247<br />
add_adv_patterns_monitor+0x214/0x360 net/bluetooth/mgmt.c:5364<br />
hci_mgmt_cmd+0x9c9/0xef0 net/bluetooth/hci_sock.c:1719<br />
hci_sock_sendmsg+0x6ca/0xef0 net/bluetooth/hci_sock.c:1839<br />
sock_sendmsg_nosec net/socket.c:714 [inline]<br />
__sock_sendmsg+0x219/0x270 net/socket.c:729<br />
sock_write_iter+0x258/0x330 net/socket.c:1133<br />
new_sync_write fs/read_write.c:593 [inline]<br />
vfs_write+0x5c9/0xb30 fs/read_write.c:686<br />
ksys_write+0x145/0x250 fs/read_write.c:738<br />
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]<br />
do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94<br />
entry_SYSCALL_64_after_hwframe+0x77/0x7f<br />
<br />
Freed by task 12221:<br />
kasan_save_stack mm/kasan/common.c:47 [inline]<br />
kasan_save_track+0x3e/0x80 mm/kasan/common.c:68<br />
kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:576<br />
poison_slab_object mm/kasan/common.c:247 [inline]<br />
__kasan_slab_free+0x62/0x70 mm/kasan/common.c:264<br />
kasan_slab_free include/linux/kasan.h:233 [inline]<br />
slab_free_hook mm/slub.c:2381 [inline]<br />
slab_free mm/slub.c:4648 [inline]<br />
kfree+0x18e/0x440 mm/slub.c:4847<br />
mgmt_pending_free net/bluetooth/mgmt_util.c:311 [inline]<br />
mgmt_pending_foreach+0x30d/0x380 net/bluetooth/mgmt_util.c:257<br />
__mgmt_power_off+0x169/0x350 net/bluetooth/mgmt.c:9444<br />
hci_dev_close_sync+0x754/0x1330 net/bluetooth/hci_sync.c:5290<br />
hci_dev_do_close net/bluetooth/hci_core.c:501 [inline]<br />
hci_dev_close+0x108/0x200 net/bluetooth/hci_core.c:526<br />
sock_do_ioctl+0xd9/0x300 net/socket.c:1192<br />
sock_ioctl+0x576/0x790 net/socket.c:1313<br />
vfs_ioctl fs/ioctl.c:51 [inline]<br />
__do_sys_ioctl fs/ioctl.c:907 [inline]<br />
__se_sys_ioctl+0xf9/0x170 fs/ioctl.c:893<br />
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]<br />
do_syscall_64+0xf<br />
---truncated---



