All vulnerabilities
CVE-2026-99008

Linux: Bluetooth: RFCOMM: Fix NULL tty_dev dereference in rfcomm_dev_shutdown

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in3fd5164bdb04635caa7942ddb554b0ec699a9433Also 08e90633377f1b2567ab5ad6810b74c552246a07CVE List
Published23 Oct 2026Updated 23 Oct 2026CVE List

What fixes it

  • 3fd5164bdb04635caa7942ddb554b0ec699a9433LinuxCVE List
  • 08e90633377f1b2567ab5ad6810b74c552246a07LinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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

Bluetooth: RFCOMM: Fix NULL tty_dev dereference in rfcomm_dev_shutdown

syzbot hit a NULL pointer dereference in rfcomm_dev_shutdown() when an RFCOMM tty is closed.

rfcomm_dev_add() puts the new device on rfcomm_dev_list first and only then registers the tty device and saves it in dev->tty_dev. If that registration fails, dev->tty_dev is never set at all. The device can be looked up in the meantime, so an open() of /dev/rfcommN gets through rfcomm_tty_install() and attaches to it. When that tty is closed again, rfcomm_dev_shutdown() uses dev->tty_dev without checking it:

Oops: general protection fault, probably for non-canonical address KASAN: null-ptr-deref in range [0x0000000000000040-0x0000000000000047] RIP: 0010:rfcomm_dev_shutdown+0x48/0xb0 net/bluetooth/rfcomm/tty.c:131 Call Trace: tty_port_shutdown+0x1bf/0x220 drivers/tty/tty_port.c:372 tty_port_close+0x4e/0x150 drivers/tty/tty_port.c:705 tty_release+0x359/0x1670 drivers/tty/tty_io.c:1718 __fput+0x418/0xa50 fs/file_table.c:512

rfcomm_dev_destruct() already copes with a NULL dev->tty_dev. Add the same check to rfcomm_dev_shutdown(), so the tty device is only moved when it was actually registered.

Text from CVE List

Affected versions 12

  • Linuxaffected: cad348a17e170451ea8688b532a6ca3e98c63b60 before d5c372ad03330f02962d4860df4d355ab25487dfCVE List
  • Linuxaffected: cad348a17e170451ea8688b532a6ca3e98c63b60 before 3fd5164bdb04635caa7942ddb554b0ec699a9433CVE List
  • Linuxaffected: cad348a17e170451ea8688b532a6ca3e98c63b60 before a661f401f83b8462f2d424e0a1a72b7681e92ea2CVE List
  • Linuxaffected: cad348a17e170451ea8688b532a6ca3e98c63b60 before d0aef0b0374678153244f162df507106d728af39CVE List
  • Linuxaffected: cad348a17e170451ea8688b532a6ca3e98c63b60 before 08e90633377f1b2567ab5ad6810b74c552246a07CVE List
  • Linuxaffected: 3.12CVE List
  • Linuxunaffected: all versions before 3.12CVE List
  • Linuxunaffected: 6.6.160 through 6.6.*CVE List
  • Linuxunaffected: 6.12.113 through 6.12.*CVE List
  • Linuxunaffected: 6.18.57 through 6.18.*CVE List
  • Linuxunaffected: 7.2.11 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 5