Linux: Bluetooth: ISO: balance the parent hold in hci_bind_bis()
What fixes it
- 03a91cdf6862fb351a74f035ad21e70112438552LinuxCVE List
- 4e49206d9574a4c109480198e73aea34ad0ed7f6LinuxCVE List
- 4c94557dd02569efa6c1072a0439addaef9a5224LinuxCVE List
- 6.6.158LinuxCVE 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: balance the parent hold in hci_bind_bis()
hci_conn_link() takes a lifetime reference to its parent with hci_conn_get(), but only takes an operational hold on the child. hci_conn_unlink() later balances both a hold and a reference on the parent.
The SCO and CIS paths pass a parent acquired from a connect helper, so it already has a hold. For an additional BIS, hci_bind_bis() obtains the parent from hci_conn_hash_lookup_big(), which returns a bare pointer. Unlinking the child then drops the parent's existing hold and can schedule it for disconnection while its socket is still using it.
Take a hold on the parent before linking it and drop that hold if linking fails. A successful link transfers the hold to hci_conn_unlink().
Text from CVE List
Affected versions 13
- Linuxaffected: 11dc486ed5d4626e6b92a23b67ed76cb6c48bfc9 before ff28e6c67143c76ef50c3eac01f2fad411705f71CVE List
- Linuxaffected: fa224d0c094a458e9ebf5ea9b1c696136b7af427 before 03a91cdf6862fb351a74f035ad21e70112438552CVE List
- Linuxaffected: fa224d0c094a458e9ebf5ea9b1c696136b7af427 before 4e49206d9574a4c109480198e73aea34ad0ed7f6CVE List
- Linuxaffected: fa224d0c094a458e9ebf5ea9b1c696136b7af427 before bbcd723ee7a84bc868142fd57717af88e54e555aCVE List
- Linuxaffected: fa224d0c094a458e9ebf5ea9b1c696136b7af427 before 4c94557dd02569efa6c1072a0439addaef9a5224CVE List
- Linuxaffected: 6.6.67 before 6.6.158CVE List
- Linuxaffected: 6.8CVE List
- Linuxunaffected: all versions before 6.8CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.112 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 5
- git.kernel.org/stable/c/ff28e6c67143c76ef50c3eac01f2fad411705f71Referencevia CVE List
- git.kernel.org/stable/c/03a91cdf6862fb351a74f035ad21e70112438552Referencevia CVE List
- git.kernel.org/stable/c/4e49206d9574a4c109480198e73aea34ad0ed7f6Referencevia CVE List
- git.kernel.org/stable/c/bbcd723ee7a84bc868142fd57717af88e54e555aReferencevia CVE List
- git.kernel.org/stable/c/4c94557dd02569efa6c1072a0439addaef9a5224Referencevia CVE List