Skip to main content
← All vulnerabilities
CVE-2024-41062

bluetooth/l2cap: sync sock recv cb and release

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.271, 5.15.222, 6.1.101, 6.6.42, 6.9.11
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

Summary

In the Linux kernel, the following vulnerability has been resolved: bluetooth/l2cap: sync sock recv cb and release The problem occurs between the system call to close the sock and hci_rx_work, where the former releases the sock and the latter accesses it without lock protection. CPU0 CPU1 ---- ---- sock_close hci_rx_work l2cap_sock_release hci_acldata_packet l2cap_sock_kill l2cap_recv_frame sk_free l2cap_conless_channel l2cap_sock_recv_cb If hci_rx_work processes the data that needs to be received before the sock is closed, then everything is normal; Otherwise, the work thread may access the released sock when receiving data. Add a chan mutex in the rx callback of the sock to achieve synchronization between the sock release and recv cb. Sock is dead, so set chan data to NULL, avoid others use invalid sock pointer.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • Linux Linux

    From 5b4cedaa14bd1fe3ca1d59c684203a6ae7747faa · fixed in 59a3ccd749b2550392ee531b4d727022eae4c89f; From 5b4cedaa14bd1fe3ca1d59c684203a6ae7747faa · fixed in 9c0b7d61cf3c00f87f2529b5b8b785f0f65089aa; From 5b4cedaa14bd1fe3ca1d59c684203a6ae7747faa · fixed in 605572e64cd9cebb05ed609d96cff05b50d18cdf; From 5b4cedaa14bd1fe3ca1d59c684203a6ae7747faa · fixed in b803f30ea23e0968b6c8285c42adf0d862ab2bf6; From 5b4cedaa14bd1fe3ca1d59c684203a6ae7747faa · fixed in 3b732449b78183d17178db40be3a4401cf3cd629; From 5b4cedaa14bd1fe3ca1d59c684203a6ae7747faa · fixed in 89e856e124f9ae548572c56b1b70c2255705f8fe

  • Linux Linux

    3.4

  • KernelLinux

    From 3.4.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.101; From 6.2.0 · fixed in 6.6.42; From 6.7.0 · fixed in 6.9.11

References 6

git.kernel.org