Linux: Bluetooth: ISO: release unused CIS holds after channel attach
What fixes it
- 0fcd4dad555c96e0bd3a1b8c569f989be85c7341LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: release unused CIS holds after channel attach
hci_bind_cis() and hci_connect_cis() return one hci_conn hold for the ISO layer. A new channel association consumes that hold, which is eventually released by iso_conn_free().
There are two cases where iso_chan_add() does not create an association: it returns success when the socket is already attached to the same iso_conn, and it returns -EBUSY when another socket is attached. The hold returned for the current call is unused in both cases. This occurs when deferred setup calls iso_connect_cis() again for its existing socket, or when another socket attempts to reuse the CIS.
Detect the idempotent case while the connection is locked and release the unused hold after iso_chan_add(). Also release it on -EBUSY. Do not drop it for other errors: a newly allocated iso_conn releases the transferred hold when its last temporary reference is put.
Text from CVE List
Affected versions 10
- Linuxaffected: 69997d50ec574be816b4ee8f9cee52ebbd53f8bd before e0e8b70207eaf27aee0a05ec5bf2d1b6bcb004d1CVE List
- Linuxaffected: 69997d50ec574be816b4ee8f9cee52ebbd53f8bd before ed4c026cc4094dfb7a329b9d8df0ddd0be1b2458CVE List
- Linuxaffected: 69997d50ec574be816b4ee8f9cee52ebbd53f8bd before e5fcca51177f224604e3a8c926ffd5edbeb58b09CVE List
- Linuxaffected: 69997d50ec574be816b4ee8f9cee52ebbd53f8bd before 0fcd4dad555c96e0bd3a1b8c569f989be85c7341CVE List
- Linuxaffected: 6.6CVE List
- Linuxunaffected: all versions before 6.6CVE List
- Linuxunaffected: 6.12.113 through 6.12.*CVE List
- Linuxunaffected: 6.18.55 through 6.18.*CVE List
- Linuxunaffected: 7.2.9 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 4
- git.kernel.org/stable/c/e0e8b70207eaf27aee0a05ec5bf2d1b6bcb004d1Referencevia CVE List
- git.kernel.org/stable/c/ed4c026cc4094dfb7a329b9d8df0ddd0be1b2458Referencevia CVE List
- git.kernel.org/stable/c/e5fcca51177f224604e3a8c926ffd5edbeb58b09Referencevia CVE List
- git.kernel.org/stable/c/0fcd4dad555c96e0bd3a1b8c569f989be85c7341Referencevia CVE List