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

Bluetooth: mgmt: Dequeue pending mesh_send_sync entries on cancel

In send_cancel(), pending mesh_tx objects are removed from the
hdev->mesh_pending list and freed via mesh_send_complete(). However, if
a mesh transmission was already queued onto hdev->cmd_sync_work_list via
mesh_next(), the queued entry retains a raw pointer to mesh_tx.

When hci_cmd_sync_work later processes the entry, it attempts to execute
mesh_send_sync and its destroy callback mesh_send_start_complete using
the already freed mesh_tx pointer, leading to a use-after-free.

Fix this by invoking hci_cmd_sync_dequeue() for mesh_send_sync on the
target mesh_tx before completing it. If the entry is found and dequeued,
its destroy callback will complete and free the object; otherwise,
mesh_send_complete() is called directly.

Additionally, ensure the transmission queue advances after cancellation
or errors. In mesh_send_start_complete(), call mesh_next() on error
unless err is -ECANCELED, because hci_cmd_sync_dequeue() holds
hdev->cmd_sync_work_lock and calling mesh_next() synchronously would
deadlock. Instead, advance the queue in send_cancel() once the lock is
released and if no transmission is in progress.
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Use‑after‑free that can lead to kernel memory corruption and privilege escalation or denial of service
Action: Immediate Patch
AI Analysis

Impact

The flaw occurs in the Linux kernel Bluetooth mesh management code. When a mesh transmission is cancelled, the related mesh_tx object is freed, but a command queued on the sync work list still holds a raw pointer to the freed object. If the cleanup of that queued command later accesses the pointer, a use‑after‑free condition is triggered. This can corrupt kernel memory and may enable an attacker to execute arbitrary code with kernel privileges or crash the system. The vulnerability is exploited through the Bluetooth management interface, likely by sending mesh commands and then cancelling them; the attack path is inferred from the description of send_cancel() and mesh_next().

Affected Systems

All Linux kernel variants, as identified by the kernel vendor and the generic Linux CPE, are affected until the patch is applied. The exact versions prior to the fix are not enumerated in the advisory, so any kernel build shipped before the fix is potentially vulnerable.

Risk and Exploitability

The security impact is high, owing to the potential for arbitrary code execution in kernel space. No CVSS score is presented in the advisory, and the EPSS score is not available; the vulnerability is not listed in the CISA KEV catalog. Because the flaw relies on a race condition between cancellation and queued work processing, attackers must be able to interact with the Bluetooth stack, which may be remotely accessible on devices exposing the mgmt interface. The exploit is therefore observable, though precise execution complexity is not specified in the advisory.

Generated by OpenCVE AI on October 18, 2026 at 18:17 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Install the latest Linux kernel version that includes the patch for the Bluetooth mesh use‑after‑free fix.
  • Reboot the system or reload the Bluetooth modules so the updated kernel code is active.
  • If a kernel upgrade cannot be performed immediately, consider disabling the Bluetooth mesh feature or the entire Bluetooth subsystem to mitigate exposure.

Generated by OpenCVE AI on October 18, 2026 at 18:17 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 18:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: Bluetooth: mgmt: Dequeue pending mesh_send_sync entries on cancel In send_cancel(), pending mesh_tx objects are removed from the hdev->mesh_pending list and freed via mesh_send_complete(). However, if a mesh transmission was already queued onto hdev->cmd_sync_work_list via mesh_next(), the queued entry retains a raw pointer to mesh_tx. When hci_cmd_sync_work later processes the entry, it attempts to execute mesh_send_sync and its destroy callback mesh_send_start_complete using the already freed mesh_tx pointer, leading to a use-after-free. Fix this by invoking hci_cmd_sync_dequeue() for mesh_send_sync on the target mesh_tx before completing it. If the entry is found and dequeued, its destroy callback will complete and free the object; otherwise, mesh_send_complete() is called directly. Additionally, ensure the transmission queue advances after cancellation or errors. In mesh_send_start_complete(), call mesh_next() on error unless err is -ECANCELED, because hci_cmd_sync_dequeue() holds hdev->cmd_sync_work_lock and calling mesh_next() synchronously would deadlock. Instead, advance the queue in send_cancel() once the lock is released and if no transmission is in progress.
Title Bluetooth: mgmt: Dequeue pending mesh_send_sync entries on cancel
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-18T15:19:56.287Z

Reserved: 2026-09-25T10:25:14.361Z

Link: CVE-2026-98632

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:16.297

Modified: 2026-10-18T16:17:16.297

Link: CVE-2026-98632

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T18:30:14Z

Weaknesses