CVE-2023-54038: Bluetooth: hci_conn: return ERR_PTR instead of NULL when there is no link
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hci_conn: return ERR_PTR instead of NULL when there is no link
hci_connect_sco currently returns NULL when there is no link (i.e. when
hci_conn_link() returns NULL).
sco_connect() expects an ERR_PTR in case of any error (see line 266 in
sco.c). Thus, hcon set as NULL passes through to sco_conn_add(), which
tries to get hcon->hdev, resulting in dereferencing a NULL pointer as
reported by syzkaller.
The same issue exists for iso_connect_cis() calling hci_connect_cis().
Thus, make hci_connect_sco() and hci_connect_cis() return ERR_PTR
instead of NULL.
Security readout for executives and security teams
Plain-English summary
This Linux kernel Bluetooth flaw is a coding error where an expected error value can instead be NULL. In affected Bluetooth connection paths, that can lead to a NULL pointer dereference. Public sources provide no CVSS score, no KEV listing, and no cited evidence of active exploitation.
Executive priority
Treat this as a maintenance-priority kernel issue unless local exposure is high. Patch through normal Linux update channels, with higher urgency for systems using Bluetooth or exposed to untrusted local or proximity-based interaction.
Technical view
hci_connect_sco() and hci_connect_cis() returned NULL when no link existed, while callers expected ERR_PTR-style errors. That allowed NULL to reach sco_conn_add(), which dereferenced hcon->hdev. The issue was reported by syzkaller and resolved by returning ERR_PTR instead of NULL.
Likely exposure
Exposure is limited to Linux systems using affected kernel Bluetooth code paths. The supplied data identifies Linux kernel entries around 6.4 to 6.5 as affected, but version data is incomplete and commit-based. Downstream distribution backports must be checked.
Exploitation context
The bundle does not cite public exploit code, exploitation in the wild, or CISA KEV inclusion. The evidence supports a kernel Bluetooth NULL pointer dereference found by automated testing, not active exploitation.
Researcher notes
The core issue is error-handling contract mismatch between hci connection helpers and SCO/ISO callers. Source evidence names syzkaller, NULL propagation, and fixes in stable commits. No CVSS, CWE, exploitability analysis, or detailed affected matrix is provided.
Mitigation direction
Check Linux vendor or distribution advisories for CVE-2023-54038 coverage.
Update to a kernel package containing the referenced stable fixes.
If Bluetooth is unnecessary, disable or restrict Bluetooth services pending patching.
Prioritize systems where untrusted users or nearby devices can reach Bluetooth functionality.
Validation and detection
Inventory Linux kernel versions and downstream package patch levels.
Compare kernel source or changelog against the referenced stable commits.
Confirm Bluetooth is enabled only where operationally required.
Review kernel logs for Bluetooth-related crashes or NULL pointer faults.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2023-54038 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
3Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Dec 24, 2025, 10:56 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.