Bluetooth: RFCOMM: Fix initial port reference race
Summary
| CVE | CVE-2026-98739 |
| State | PUBLISHED |
| Assigner | Linux |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-10-18 16:17:27 UTC |
| Updated | 2026-10-21 13:21:41 UTC |
| Description | In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: RFCOMM: Fix initial port reference race
For RFCOMM_RELEASE_ONHUP devices, rfcomm_tty_install() and
__rfcomm_release_dev() both use RFCOMM_TTY_OWNED to decide who drops the
initial tty_port reference. The release path tests the bit separately
from the install path setting it, so both can drop that reference.
The synchronous hangup does not prevent this race: port->tty is not
assigned until tty_port_open(), after installation. The following
interleaving is possible:
1. Install and release each obtain a reference with rfcomm_dev_get().
2. Release observes RFCOMM_TTY_OWNED clear.
3. Install sets RFCOMM_TTY_OWNED and drops the initial reference.
4. Release drops the same initial reference again.
5. TTY cleanup drops its reference and frees the device.
6. Release performs its final tty_port_put() on the freed port.
KASAN reported:
BUG: KASAN: slab-use-after-free in tty_port_put+0x22/0x190
Write of size 4 at addr ffff8881001d3d5c by task poc/92
Call Trace:
tty_port_put+0x22/0x190
rfcomm_dev_ioctl+0x1d4/0x1930
sock_do_ioctl+0x110/0x260
sock_ioctl+0x380/0x590
__x64_sys_ioctl+0x134/0x1c0
Allocated by task 88:
rfcomm_dev_ioctl+0x8f6/0x1930
sock_do_ioctl+0x110/0x260
sock_ioctl+0x380/0x590
__x64_sys_ioctl+0x134/0x1c0
Freed by task 65:
kfree+0x131/0x3c0
rfcomm_dev_destruct+0x23b/0x2f0
release_one_tty+0xc1/0x370
process_one_work+0x661/0x1090
Use test_and_set_bit() in both paths so that only the caller that changes
RFCOMM_TTY_OWNED from clear to set drops the initial reference. Each path
keeps its own lookup reference until release or TTY cleanup, preserving
the existing callback ordering and error handling. |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|
| CNA |
Linux |
Linux |
affected 80ea73378af46b0023eb2f400d26c2a60248ffaa 55d162aa00d1ee33c3e6fa88b71f1e2d6e1441e9 git |
Not specified |
| CNA |
Linux |
Linux |
affected 80ea73378af46b0023eb2f400d26c2a60248ffaa a03ccf1ab77380d4c4a3c56552e12de4a83efa21 git |
Not specified |
| CNA |
Linux |
Linux |
affected 80ea73378af46b0023eb2f400d26c2a60248ffaa 0a554901bd227537f79220443b2b36d585d62893 git |
Not specified |
| CNA |
Linux |
Linux |
affected 80ea73378af46b0023eb2f400d26c2a60248ffaa e5aa7fbf7a4446bb89f0b8394b2dfc1a6b6aba5b git |
Not specified |
| CNA |
Linux |
Linux |
affected 80ea73378af46b0023eb2f400d26c2a60248ffaa 2d696c1ed3468dcb62578a3911e687110d463520 git |
Not specified |
| CNA |
Linux |
Linux |
affected 3.15 |
Not specified |
| CNA |
Linux |
Linux |
unaffected 3.15 semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.6.160 6.6.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.12.113 6.12.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.18.56 6.18.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.2.10 7.2.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.3 * original_commit_for_fix |
Not specified |
References
| Reference | Source | Link | Tags |
|---|
| git.kernel.org/stable/c/2d696c1ed3468dcb62578a3911e687110d463520 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/0a554901bd227537f79220443b2b36d585d62893 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/e5aa7fbf7a4446bb89f0b8394b2dfc1a6b6aba5b |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/a03ccf1ab77380d4c4a3c56552e12de4a83efa21 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/55d162aa00d1ee33c3e6fa88b71f1e2d6e1441e9 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| CVE Program record |
CVE.ORG |
www.cve.org |
canonical |
| NVD vulnerability detail |
NVD |
nvd.nist.gov |
canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.