Bluetooth: ISO: balance the parent hold in hci_bind_bis()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.158, 6.12.112, 6.18.55, 7.2.9
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
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().
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 11dc486ed5d4626e6b92a23b67ed76cb6c48bfc9 · fixed in ff28e6c67143c76ef50c3eac01f2fad411705f71; From fa224d0c094a458e9ebf5ea9b1c696136b7af427 · fixed in 03a91cdf6862fb351a74f035ad21e70112438552; From fa224d0c094a458e9ebf5ea9b1c696136b7af427 · fixed in 4e49206d9574a4c109480198e73aea34ad0ed7f6; From fa224d0c094a458e9ebf5ea9b1c696136b7af427 · fixed in bbcd723ee7a84bc868142fd57717af88e54e555a; From fa224d0c094a458e9ebf5ea9b1c696136b7af427 · fixed in 4c94557dd02569efa6c1072a0439addaef9a5224; From 6.6.67 · fixed in 6.6.158
- Linux Linux
6.8
- KernelLinux
fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.8.0 · fixed in 6.18.55; From 6.13.0 · fixed in 7.2.9