Bluetooth: hci_ldisc: Clear HCI_UART_PROTO_INIT on error
- 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 5.10.258, 5.15.209, 6.1.175, 6.6.141, 6.12.91, and 3 more
- 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: hci_ldisc: Clear HCI_UART_PROTO_INIT on error When hci_register_dev() fails in hci_uart_register_dev() HCI_UART_PROTO_INIT is not cleared before calling hu->proto->close(hu) and setting hu->hdev to NULL. This means incoming UART data will reach the protocol-specific recv handler in hci_uart_tty_receive() after resources are freed. Clear HCI_UART_PROTO_INIT with a write lock before calling hu->proto->close() and setting hu->hdev to NULL. The write lock ensures all active readers have completed and no new reader can enter the protocol recv path before resources are freed. This allows the protocol-specific recv functions to remove the "HCI_UART_REGISTERED" guard without risking a null pointer dereference if hci_register_dev() fails.
Timeline
- CVE published
Affected versions
- Linux Linux
From 5.10.237 · fixed in 5.10.258; From 5.15.181 · fixed in 5.15.209; From 6.1.135 · fixed in 6.1.175; From 6.6.88 · fixed in 6.6.141; From 6.12.24 · fixed in 6.12.91; From 5.4.293 · fixed in 5.5; From 6.13.12 · fixed in 6.14; From 6.14.3 · fixed in 6.15
- Linux Linux
6.15
References 8
git.kernel.org
- stable/c/ebb39b2d81731b83ee71a1ba6dd0291a57b5ac07
- stable/c/ed4033fb85ccaaf6c3983be3c7b037e48253d232
- stable/c/356dee1bcac4d0d9152390561fa63331ebff211b
- stable/c/a673cf6c4ac702cb79ac1f4d7fc4de763a6a3e40
- stable/c/f4b69c35813c432973d340d3600c01de106ed474
- stable/c/3daa5818e473ed60eb69d8b5c71b651909d28c5a
- stable/c/194f029a4d7f739e44ebc1f473120187b4de5104
- stable/c/68d39ea5e0adc9ecaea1ce8abd842ec972eb8718