{"id":"DEBIAN-CVE-2024-27398","details":"In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: Fix use-after-free bugs caused by sco_sock_timeout  When the sco connection is established and then, the sco socket is releasing, timeout_work will be scheduled to judge whether the sco disconnection is timeout. The sock will be deallocated later, but it is dereferenced again in sco_sock_timeout. As a result, the use-after-free bugs will happen. The root cause is shown below:      Cleanup Thread               |      Worker Thread sco_sock_release                 |   sco_sock_close                 |     __sco_sock_close             |       sco_sock_set_timer         |         schedule_delayed_work    |   sco_sock_kill                  |    (wait a time)     sock_put(sk) //FREE          |  sco_sock_timeout                                  |    sock_hold(sk) //USE  The KASAN report triggered by POC is shown below:  [   95.890016] ================================================================== [   95.890496] BUG: KASAN: slab-use-after-free in sco_sock_timeout+0x5e/0x1c0 [   95.890755] Write of size 4 at addr ffff88800c388080 by task kworker/0:0/7 ... [   95.890755] Workqueue: events sco_sock_timeout [   95.890755] Call Trace: [   95.890755]  \u003cTASK\u003e [   95.890755]  dump_stack_lvl+0x45/0x110 [   95.890755]  print_address_description+0x78/0x390 [   95.890755]  print_report+0x11b/0x250 [   95.890755]  ? __virt_addr_valid+0xbe/0xf0 [   95.890755]  ? sco_sock_timeout+0x5e/0x1c0 [   95.890755]  kasan_report+0x139/0x170 [   95.890755]  ? update_load_avg+0xe5/0x9f0 [   95.890755]  ? sco_sock_timeout+0x5e/0x1c0 [   95.890755]  kasan_check_range+0x2c3/0x2e0 [   95.890755]  sco_sock_timeout+0x5e/0x1c0 [   95.890755]  process_one_work+0x561/0xc50 [   95.890755]  worker_thread+0xab2/0x13c0 [   95.890755]  ? pr_cont_work+0x490/0x490 [   95.890755]  kthread+0x279/0x300 [   95.890755]  ? pr_cont_work+0x490/0x490 [   95.890755]  ? kthread_blkcg+0xa0/0xa0 [   95.890755]  ret_from_fork+0x34/0x60 [   95.890755]  ? kthread_blkcg+0xa0/0xa0 [   95.890755]  ret_from_fork_asm+0x11/0x20 [   95.890755]  \u003c/TASK\u003e [   95.890755] [   95.890755] Allocated by task 506: [   95.890755]  kasan_save_track+0x3f/0x70 [   95.890755]  __kasan_kmalloc+0x86/0x90 [   95.890755]  __kmalloc+0x17f/0x360 [   95.890755]  sk_prot_alloc+0xe1/0x1a0 [   95.890755]  sk_alloc+0x31/0x4e0 [   95.890755]  bt_sock_alloc+0x2b/0x2a0 [   95.890755]  sco_sock_create+0xad/0x320 [   95.890755]  bt_sock_create+0x145/0x320 [   95.890755]  __sock_create+0x2e1/0x650 [   95.890755]  __sys_socket+0xd0/0x280 [   95.890755]  __x64_sys_socket+0x75/0x80 [   95.890755]  do_syscall_64+0xc4/0x1b0 [   95.890755]  entry_SYSCALL_64_after_hwframe+0x67/0x6f [   95.890755] [   95.890755] Freed by task 506: [   95.890755]  kasan_save_track+0x3f/0x70 [   95.890755]  kasan_save_free_info+0x40/0x50 [   95.890755]  poison_slab_object+0x118/0x180 [   95.890755]  __kasan_slab_free+0x12/0x30 [   95.890755]  kfree+0xb2/0x240 [   95.890755]  __sk_destruct+0x317/0x410 [   95.890755]  sco_sock_release+0x232/0x280 [   95.890755]  sock_close+0xb2/0x210 [   95.890755]  __fput+0x37f/0x770 [   95.890755]  task_work_run+0x1ae/0x210 [   95.890755]  get_signal+0xe17/0xf70 [   95.890755]  arch_do_signal_or_restart+0x3f/0x520 [   95.890755]  syscall_exit_to_user_mode+0x55/0x120 [   95.890755]  do_syscall_64+0xd1/0x1b0 [   95.890755]  entry_SYSCALL_64_after_hwframe+0x67/0x6f [   95.890755] [   95.890755] The buggy address belongs to the object at ffff88800c388000 [   95.890755]  which belongs to the cache kmalloc-1k of size 1024 [   95.890755] The buggy address is located 128 bytes inside of [   95.890755]  freed 1024-byte region [ffff88800c388000, ffff88800c388400) [   95.890755] [   95.890755] The buggy address belongs to the physical page: [   95.890755] page: refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff88800c38a800 pfn:0xc388 [   95.890755] head: order:3 entire_mapcount:0 nr_pages_mapped:0 pincount:0 [   95.890755] ano ---truncated---","modified":"2026-09-15T09:03:06.335974642Z","published":"2024-05-14T15:12:28.623Z","upstream":["CVE-2024-27398"],"references":[{"type":"ADVISORY","url":"https://security-tracker.debian.org/tracker/CVE-2024-27398"}],"affected":[{"package":{"name":"linux","ecosystem":"Debian:12","purl":"pkg:deb/debian/linux?arch=source&distro=bookworm"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.1.94-1"}]}],"versions":["6.1.27-1","6.1.37-1","6.1.38-1","6.1.38-2","6.1.38-2~bpo11+1","6.1.38-3","6.1.38-4","6.1.38-4~bpo11+1","6.1.52-1","6.1.55-1","6.1.55-1~bpo11+1","6.1.64-1","6.1.66-1","6.1.67-1","6.1.69-1","6.1.69-1~bpo11+1","6.1.76-1","6.1.76-1~bpo11+1","6.1.82-1","6.1.85-1","6.1.90-1","6.1.90-1~bpo11+1","6.1.94-1~bpo11+1"],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2024-27398.json"}},{"package":{"name":"linux","ecosystem":"Debian:13","purl":"pkg:deb/debian/linux?arch=source&distro=trixie"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.8.11-1"}]}],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2024-27398.json"}},{"package":{"name":"linux","ecosystem":"Debian:14","purl":"pkg:deb/debian/linux?arch=source&distro=forky"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.8.11-1"}]}],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2024-27398.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}]}