{"id":"CVE-2026-99013","summary":"Bluetooth: ISO: Reject concurrent BIS listener setup","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: ISO: Reject concurrent BIS listener setup\n\niso_sock_listen() drops the socket lock before calling iso_listen_bis()\nto preserve the hdev-\u003elock ordering. Two concurrent listen() calls on\nthe same broadcast socket can therefore both observe BT_BOUND. Caller\nA can attach connA and release the locks, then caller B can acquire\nthem and attach connB before A publishes BT_LISTEN.\n\n__iso_chan_add() checks whether connB already has a socket, but not\nwhether the socket already has a connection. The second attachment\noverwrites iso_pi(sk)-\u003econn, leaking the connA reference and leaving\nconnA-\u003esk intact. Socket teardown follows connB, so later events on\nconnA can cause a stale socket access.\n\nRecheck BT_BOUND and require iso_pi(sk)-\u003econn to be NULL after taking\nboth the HCI device and socket locks in iso_listen_bis(). The connection\ncheck also covers the interval between attachment and publication of\nBT_LISTEN. Reject a competing setup with -EBADFD through the existing\nunlock path before allocating another connection.\n\nA recorded KASAN report from an instrumented kernel shows:\n\n  BUG: KASAN: slab-use-after-free in iso_sock_hold+0x119/0x1f0\n  Call Trace:\n   iso_sock_hold+0x119/0x1f0\n   iso_conn_del+0xe4/0x270\n   hci_disconn_complete_evt+0x351/0x8c0\n   hci_event_packet+0x71b/0xb20\n   hci_rx_work+0x293/0x730\n\n  Allocated by task 93:\n   sk_prot_alloc+0x113/0x220\n   sk_alloc+0x2b/0x6d0\n   bt_sock_alloc+0x29/0x370\n   iso_sock_alloc.constprop.0+0x19/0x300\n   iso_sock_create+0x94/0x100\n\n  Freed by task 93:\n   kfree+0x121/0x3c0\n   __sk_destruct+0x42b/0x540\n   iso_sock_release+0x29d/0x340\n   __sock_release+0xa1/0x260\n   sock_close+0x10/0x20","modified":"2026-11-12T17:29:31.481881963Z","published":"2026-10-23T12:20:38.612Z","related":["SUSE-SU-2026:24643-1","SUSE-SU-2026:24648-1","SUSE-SU-2026:24651-1","SUSE-SU-2026:24662-1","SUSE-SU-2026:5091-1"],"database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/99xxx/CVE-2026-99013.json"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/555ff78fa719f50ff4cdbdb40aa1acc6e8e327d3"},{"type":"WEB","url":"https://git.kernel.org/stable/c/559e4d2b6f83aaa96061659cc7104b7a0293f9ef"},{"type":"WEB","url":"https://git.kernel.org/stable/c/79993e9919a87068183ba3622c383f05c049c4bc"},{"type":"WEB","url":"https://git.kernel.org/stable/c/90b744066ca520d1a6a505a11ade9c9a5f48accf"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/99xxx/CVE-2026-99013.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99013"},{"type":"PACKAGE","url":"https://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":"c541d7b5e17987ed330798b07d4ad508859c1c93"},{"fixed":"559e4d2b6f83aaa96061659cc7104b7a0293f9ef"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"168e28305b871d8ec604a8f51f35467b8d7ba05b"},{"fixed":"90b744066ca520d1a6a505a11ade9c9a5f48accf"},{"fixed":"79993e9919a87068183ba3622c383f05c049c4bc"},{"fixed":"555ff78fa719f50ff4cdbdb40aa1acc6e8e327d3"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"6.12.6"},{"fixed":"6.12.113"}]}],"versions":["v6.12.112","v6.12.111","v6.12.110","v6.12.109","v6.12.108","v6.12.107","v6.12.106","v6.12.105","v6.12.104","v6.12.103","v6.12.102","v6.12.101","v6.12.100","v6.12.99","v6.12.98","v6.12.97","v6.12.96","v6.12.95","v6.12.94","v6.12.93","v6.12.92","v6.12.91","v6.12.90","v6.12.89","v6.12.88","v6.12.87","v6.12.86","v6.12.85","v6.12.84","v6.12.83","v6.12.82","v6.12.81","v6.12.80","v6.12.79","v6.12.78","v6.12.77","v6.12.76","v6.12.75","v6.12.74","v6.12.73","v6.12.72","v6.12.71","v6.12.70","v6.12.69","v6.12.68","v6.12.67","v6.12.66","v6.12.65","v6.12.64","v6.12.63","v6.12.62","v6.12.61","v6.12.60","v6.12.59","v6.12.58","v6.12.57","v6.12.56","v6.12.55","v6.12.54","v6.12.53","v6.12.52","v6.12.51","v6.12.50","v6.12.49","v6.12.48","v6.12.47","v6.12.46","v6.12.45","v6.12.44","v6.12.43","v6.12.42","v6.12.41","v6.12.40","v6.12.39","v6.12.38","v6.12.37","v6.12.36","v6.12.35","v6.12.34","v6.12.33","v6.12.32","v6.12.31","v6.12.30","v6.12.29","v6.12.28","v6.12.27","v6.12.26","v6.12.25","v6.12.24","v6.12.23","v6.12.22","v6.12.21","v6.12.20","v6.12.19","v6.12.18","v6.12.17","v6.12.16","v6.12.15","v6.12.14","v6.12.13","v6.12.12","v6.12.11","v6.12.10","v6.12.9","v6.12.8","v6.12.7","v6.12.6"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-99013.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.12.113"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.57"},{"fixed":"7.2.11"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-99013.json"}}],"schema_version":"1.9.2","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}]}