{"id":29064,"date":"2026-09-25T20:31:47","date_gmt":"2026-09-25T12:31:47","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97908"},"modified":"2026-09-25T20:31:47","modified_gmt":"2026-09-25T12:31:47","slug":"cve-2026-97908","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97908","title":{"rendered":"CVE-2026-97908 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: btqcomsmd:"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>Bluetooth: btqcomsmd: destroy RPMsg endpoints before freeing hci_dev<\/p>\n<p>The command and ACL RPMsg endpoints store struct btqcomsmd as their<br \/>\ncallback private data. The receive callbacks dereference btq-&gt;hdev<br \/>\nwithout taking an hci_dev reference.<\/p>\n<p>The current teardown order frees the hci_dev before destroying the RPMsg<br \/>\nendpoints in both the hci_register_dev() error path and the driver remove<br \/>\npath. If WCNSS delivers data in that window, the endpoint callback can<br \/>\nrun with an already freed hci_dev and pass it to the Bluetooth core.<\/p>\n<p>For qcom_smd endpoints, rpmsg_destroy_ept() closes the channel and clears<br \/>\nthe callback under the channel recv_lock. The receive path holds the same<br \/>\nlock while invoking the callback, so destroying the endpoints first both<br \/>\nprevents new callbacks and serializes with any callback already running.<\/p>\n<p>Destroy the command and ACL endpoints before hci_free_dev(). Keep<br \/>\nhci_unregister_dev() first during remove so the HCI core stops issuing<br \/>\noperations before the transport endpoints are shut down. In the full<br \/>\nregistration-error cleanup path, return directly after freeing the hci_dev<br \/>\nto avoid falling through to the partial-construction labels and destroying<br \/>\nthe endpoints twice.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>Bluetooth: btqcomsmd: destroy RPMsg endpoints before freeing hci_dev<\/p>\n<p>The command and ACL RPMsg endpoints store struct btqcomsmd as<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29064","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29064","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=29064"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29064"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29064"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}