---
id: CVE-2026-53252
title: 'Bluetooth: fix memory leak in error path of hci_alloc_dev()'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  Bluetooth: fix memory leak in error path of hci_alloc_dev()

  Early failures in Bluetooth HCI UART configuration leak SRCU percpu
  memory.

  When device initialization fai…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 90dee0a0ff84fac8accd5be98412b3819f667149 <
    5b7dfca6f852e6b9d809fd0263b5427cc9fb33fd
  - >-
    Linux >= c56b177efce8b62798e4d96bdb9867106cb7c4a0 <
    c016118b9e51eeaf5bc93850d4c455a3b583c0aa
  - >-
    Linux >= bc0819a25e04cd68ef3568cfa51b63118fea39a7 <
    0622e527a31d4b44737fed5c1a2ac1fc2cfb5184
  - >-
    Linux >= ce23b73f0f27e2dbeb81734a79db710f05aa33c6 <
    bc2efe73c194a74839d7cf57b63880d97e21d309
  - >-
    Linux >= 1d6123102e9fbedc8d25bf4731da6d513173e49e <
    ce4b4cac3c5749b6aa75e62e2991ae2263f2f889
  - >-
    Linux >= 1d6123102e9fbedc8d25bf4731da6d513173e49e <
    f82799407a50af7bcacacf09cc9b279af8fe9b81
  - >-
    Linux >= 1d6123102e9fbedc8d25bf4731da6d513173e49e <
    37b3009bf5976e8ab77c8b9a9bc3bbd7ff49e37f
  - Linux dd4becd3fd4102696e1c15e6d260a1712a2d8685
  - Linux 0e5c144c557df910ab64d9c25d06399a9a735e65
  - Linux >= 5.15.209 < 5.15.210
  - Linux >= 6.1.167 < 6.1.176
  - Linux >= 6.6.97 < 6.6.143
  - Linux >= 6.12.36 < 6.12.94
  - Linux >= 5.10.259 < 5.11
  - Linux >= 6.15.5 < 6.16
  - Linux 6.16
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-06T16:24:05.966694Z'
published: '2026-06-25'
updated: '2026-11-06'
sourceUpdated: '2026-11-06T16:34:15.874Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-53252'
references:
  - url: 'https://git.kernel.org/stable/c/5b7dfca6f852e6b9d809fd0263b5427cc9fb33fd'
  - url: 'https://git.kernel.org/stable/c/c016118b9e51eeaf5bc93850d4c455a3b583c0aa'
  - url: 'https://git.kernel.org/stable/c/0622e527a31d4b44737fed5c1a2ac1fc2cfb5184'
  - url: 'https://git.kernel.org/stable/c/bc2efe73c194a74839d7cf57b63880d97e21d309'
  - url: 'https://git.kernel.org/stable/c/ce4b4cac3c5749b6aa75e62e2991ae2263f2f889'
  - url: 'https://git.kernel.org/stable/c/f82799407a50af7bcacacf09cc9b279af8fe9b81'
  - url: 'https://git.kernel.org/stable/c/37b3009bf5976e8ab77c8b9a9bc3bbd7ff49e37f'
tags:
  - cve.org
epss: 0.0013
epssPercentile: 0.02674
ingestedAt: '2026-11-06T16:57:43.262Z'
---

## Overview

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

Bluetooth: fix memory leak in error path of hci_alloc_dev()

Early failures in Bluetooth HCI UART configuration leak SRCU percpu
memory.

When device initialization fails before hci_register_dev() completes,
the HCI_UNREGISTER flag is never set. As a result, when the device
reference count reaches zero, bt_host_release() evaluates this flag as
false and falls back to a direct kfree(hdev).

Because hci_release_dev() is bypassed, the SRCU struct initialized
early in hci_alloc_dev() is never cleaned up, resulting in a leak of
percpu memory.

Fix the leak by explicitly calling cleanup_srcu_struct() in the
fallback (unregistered) branch of bt_host_release() before freeing
the device.

## Affected

- `Linux >= 90dee0a0ff84fac8accd5be98412b3819f667149 < 5b7dfca6f852e6b9d809fd0263b5427cc9fb33fd`
- `Linux >= c56b177efce8b62798e4d96bdb9867106cb7c4a0 < c016118b9e51eeaf5bc93850d4c455a3b583c0aa`
- `Linux >= bc0819a25e04cd68ef3568cfa51b63118fea39a7 < 0622e527a31d4b44737fed5c1a2ac1fc2cfb5184`
- `Linux >= ce23b73f0f27e2dbeb81734a79db710f05aa33c6 < bc2efe73c194a74839d7cf57b63880d97e21d309`
- `Linux >= 1d6123102e9fbedc8d25bf4731da6d513173e49e < ce4b4cac3c5749b6aa75e62e2991ae2263f2f889`
- `Linux >= 1d6123102e9fbedc8d25bf4731da6d513173e49e < f82799407a50af7bcacacf09cc9b279af8fe9b81`
- `Linux >= 1d6123102e9fbedc8d25bf4731da6d513173e49e < 37b3009bf5976e8ab77c8b9a9bc3bbd7ff49e37f`
- `Linux dd4becd3fd4102696e1c15e6d260a1712a2d8685`
- `Linux 0e5c144c557df910ab64d9c25d06399a9a735e65`
- `Linux >= 5.15.209 < 5.15.210`
- `Linux >= 6.1.167 < 6.1.176`
- `Linux >= 6.6.97 < 6.6.143`
- `Linux >= 6.12.36 < 6.12.94`
- `Linux >= 5.10.259 < 5.11`
- `Linux >= 6.15.5 < 6.16`
- `Linux 6.16`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
