---
id: CVE-2026-80914
title: 'Bluetooth: ISO: fix use-after-free of listener socket in iso_conn_ready'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  Bluetooth: ISO: fix use-after-free of listener socket in iso_conn_ready

  iso_conn_ready() looks up the BIS listener socket with iso_get_sock(),
  which takes a reference,…
severity: high
cvss: 8.8
cvssVector: 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= ccf74f2390d60a2f9a75ef496d2564abb478f46a <
    1702f12cf59a1c3b670eb6bb4a4d6fcccf07e3b8
  - >-
    Linux >= ccf74f2390d60a2f9a75ef496d2564abb478f46a <
    d47b8f8c02a3d3f282693e5a4ff1f6b4b00518de
  - >-
    Linux >= ccf74f2390d60a2f9a75ef496d2564abb478f46a <
    2387cd06a2c0b416f05028b02bba1089f54c28d9
  - >-
    Linux >= ccf74f2390d60a2f9a75ef496d2564abb478f46a <
    49fd7116f76b860b230843700fb7423ab5331e1f
  - >-
    Linux >= ccf74f2390d60a2f9a75ef496d2564abb478f46a <
    03288b7447c9e572f8ab82fc29cfb4ca719ab210
  - >-
    Linux >= ccf74f2390d60a2f9a75ef496d2564abb478f46a <
    560bef609fa5992745929e8d7d458b9d88dd2830
  - Linux 6.0
published: '2026-09-09'
updated: '2026-09-14'
sourceUpdated: '2026-09-14T11:58:54.701Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-80914'
references:
  - url: 'https://git.kernel.org/stable/c/1702f12cf59a1c3b670eb6bb4a4d6fcccf07e3b8'
  - url: 'https://git.kernel.org/stable/c/d47b8f8c02a3d3f282693e5a4ff1f6b4b00518de'
  - url: 'https://git.kernel.org/stable/c/2387cd06a2c0b416f05028b02bba1089f54c28d9'
  - url: 'https://git.kernel.org/stable/c/49fd7116f76b860b230843700fb7423ab5331e1f'
  - url: 'https://git.kernel.org/stable/c/03288b7447c9e572f8ab82fc29cfb4ca719ab210'
  - url: 'https://git.kernel.org/stable/c/560bef609fa5992745929e8d7d458b9d88dd2830'
tags:
  - cve.org
epss: 0.00391
epssPercentile: 0.30426
ingestedAt: '2026-09-14T15:23:07.456Z'
---

## Overview

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

Bluetooth: ISO: fix use-after-free of listener socket in iso_conn_ready

iso_conn_ready() looks up the BIS listener socket with iso_get_sock(),
which takes a reference, and then, without re-checking its state,
creates a child socket from it:

    parent = iso_get_sock(hdev, ...);
    if (!parent)
        return;

    lock_sock(parent);
    sk = iso_sock_alloc(sock_net(parent), NULL, BTPROTO_ISO, ...);
    ...
    iso_chan_add(conn, sk, parent);
    ...
    release_sock(parent);
    sock_put(parent);

If the listener socket is closed concurrently, between iso_get_sock()
and lock_sock(), the reference taken by iso_get_sock() may be the last
one: the close path drops the link-list reference, and once
iso_conn_ready() drops its own reference at the end of the function the
socket is freed.  The child socket, however, is already linked to the
freed parent, and a later disconnect of the child runs iso_chan_del()
-> bt_accept_unlink(), which dereferences the dangling parent pointer
into the freed accept queue (a use-after-free).  The same dangling
pointer is also dereferenced through parent->***() in
iso_chan_del().

Fix it the same way the connected (non-BIS) path was fixed in commit
0d255e63fcf3 ("Bluetooth: ISO: hold sk properly in iso_conn_ready"):
after taking the socket lock, re-check that the parent is still a
listening, alive socket, and bail out otherwise.

## Affected

- `Linux >= ccf74f2390d60a2f9a75ef496d2564abb478f46a < 1702f12cf59a1c3b670eb6bb4a4d6fcccf07e3b8`
- `Linux >= ccf74f2390d60a2f9a75ef496d2564abb478f46a < d47b8f8c02a3d3f282693e5a4ff1f6b4b00518de`
- `Linux >= ccf74f2390d60a2f9a75ef496d2564abb478f46a < 2387cd06a2c0b416f05028b02bba1089f54c28d9`
- `Linux >= ccf74f2390d60a2f9a75ef496d2564abb478f46a < 49fd7116f76b860b230843700fb7423ab5331e1f`
- `Linux >= ccf74f2390d60a2f9a75ef496d2564abb478f46a < 03288b7447c9e572f8ab82fc29cfb4ca719ab210`
- `Linux >= ccf74f2390d60a2f9a75ef496d2564abb478f46a < 560bef609fa5992745929e8d7d458b9d88dd2830`
- `Linux 6.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
