CVE-2025-38593

Bluetooth: hci_sync: fix double free in 'hci_discovery_filter_clear()'

State
Published
Severity
7.8 High
Published
Aug 19, 2025
Updated
Oct 15, 2026
Reserved
Apr 16, 2025

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: hci_sync: fix double free in 'hci_discovery_filter_clear()'

Function 'hci_discovery_filter_clear()' frees 'uuids' array and then sets it to NULL. There is a tiny chance of the following race:

'hci_cmd_sync_work()'

'update_passive_scan_sync()'

'hci_update_passive_scan_sync()'

'hci_discovery_filter_clear()' kfree(uuids);

<-------------------------preempted--------------------------------> 'start_service_discovery()'

'hci_discovery_filter_clear()' kfree(uuids); // DOUBLE FREE

<-------------------------preempted-------------------------------->

uuids = NULL;

To fix it let's add locking around 'kfree()' call and NULL pointer assignment. Otherwise the following backtrace fires:

[ ] ------------[ cut here ]------------ [ ] kernel BUG at mm/slub.c:547! [ ] Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP [ ] CPU: 3 UID: 0 PID: 246 Comm: bluetoothd Tainted: G O 6.12.19-kernel #1 [ ] Tainted: [O]=OOT_MODULE [ ] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ ] pc : __slab_free+0xf8/0x348 [ ] lr : __slab_free+0x48/0x348 ... [ ] Call trace: [ ] __slab_free+0xf8/0x348 [ ] kfree+0x164/0x27c [ ] start_service_discovery+0x1d0/0x2c0 [ ] hci_sock_sendmsg+0x518/0x924 [ ] __sock_sendmsg+0x54/0x60 [ ] sock_write_iter+0x98/0xf8 [ ] do_iter_readv_writev+0xe4/0x1c8 [ ] vfs_writev+0x128/0x2b0 [ ] do_writev+0xfc/0x118 [ ] __arm64_sys_writev+0x20/0x2c [ ] invoke_syscall+0x68/0xf0 [ ] el0_svc_common.constprop.0+0x40/0xe0 [ ] do_el0_svc+0x1c/0x28 [ ] el0_svc+0x30/0xd0 [ ] el0t_64_sync_handler+0x100/0x12c [ ] el0t_64_sync+0x194/0x198 [ ] Code: 8b0002e6 eb17031f 54fffbe1 d503201f (d4210000) [ ] ---[ end trace 0000000000000000 ]---

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • ad383c2c65a5baf16e334cd40a013cc302176891 to before 86f3dcd1f331cfd4fd7ec88906955134ec51afbeAffected
  • ad383c2c65a5baf16e334cd40a013cc302176891 to before 7ce9bb0b95fc280e9212b8922590c492ca1d9c39Affected
  • ad383c2c65a5baf16e334cd40a013cc302176891 to before 16852eccbdfaf41a666705e3f8be55cf2864c5caAffected
  • ad383c2c65a5baf16e334cd40a013cc302176891 to before a351ff6b8ecca4229afaa0d98042bead8de64799Affected
  • ad383c2c65a5baf16e334cd40a013cc302176891 to before f8069f34c4c976786ded97498012225af87435d7Affected
  • ad383c2c65a5baf16e334cd40a013cc302176891 to before 2935e556850e9c94d7a00adf14d3cd7fe406ac03Affected
LinuxLinux
  • 5.17Affected
  • before 5.17Not affected
  • 6.1.159 through 6.1.*Not affected
  • 6.6.117 through 6.6.*Not affected
  • 6.12.42 through 6.12.*Not affected
  • 6.15.10 through 6.15.*Not affected
  • 6.16.1 through 6.16.*Not affected
  • 6.17 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.