All vulnerabilities
CVE-2026-98600

Linux: Bluetooth: RFCOMM: Reject short EA=0 frames in rfcomm_recv_frame()

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.18%Chance of exploitation activity in the next 30 days, higher than 6% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in76876fd26569302d26d91cbe8b75fa8e66cf8969Also 97711b964877242933484989224a3c4c5d88a5ee, 7a1781a2f3a9667b3065d402d1f11986a2363e08 and 5 moreCVE List
Published18 Oct 2026Updated 19 Oct 2026CVE List

What fixes it

  • 76876fd26569302d26d91cbe8b75fa8e66cf8969LinuxCVE List
  • 97711b964877242933484989224a3c4c5d88a5eeLinuxCVE List
  • 7a1781a2f3a9667b3065d402d1f11986a2363e08LinuxCVE List
  • 71ccacde407b7d8f0ef48974a0d2524602fd5c44LinuxCVE List
  • 9240fc1f2cde5331c61608da21b00394602ca762LinuxCVE List
  • 6d91041bb38b97e2feb625123cc0529d7b83a0e1LinuxCVE List
Show all 8 fixed versions

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: Reject short EA=0 frames in rfcomm_recv_frame()

While rfcomm_recv_frame() verifies that skb->len is at least sizeof(*hdr) + 1 (4 bytes: 3-byte header + 1-byte FCS), an RFCOMM frame with an extended 2-byte length field (!__test_ea(hdr->len)) has a 4-byte header plus a 1-byte FCS (5 bytes minimum, sizeof(*hdr) + 2).

When a 4-byte RFCOMM frame with EA == 0 arrives:

  1. The initial skb->len < sizeof(*hdr) + 1 check passes (4 < 4 is false).
  2. Trimming the FCS byte decrements skb->len to 3.
  3. If __check_fcs() succeeds, skb_pull(skb, 4) fails (4 > 3) and returns

NULL without advancing skb->data.

  1. Because the return value of skb_pull() is ignored, the un-pulled

3-byte struct rfcomm_hdr remains at skb->data and is either queued as application payload via rfcomm_recv_data() or parsed as a multiplexer control command via rfcomm_recv_mcc() on DLCI 0.

Fix this by extending the length check in rfcomm_recv_frame() to also require skb->len >= sizeof(*hdr) + 2 when !__test_ea(hdr->len).

Text from CVE List

Affected versions 16

  • Linuxaffected: fb40eda15122f6b780228639c1ead6820340ff54 before 76876fd26569302d26d91cbe8b75fa8e66cf8969CVE List
  • Linuxaffected: 3829af5fab5a22405bf1e7d69068c2ec0fce46ca before 97711b964877242933484989224a3c4c5d88a5eeCVE List
  • Linuxaffected: b161eacd7fa4a2d765724b5504ac6cc388e48f80 before 7a1781a2f3a9667b3065d402d1f11986a2363e08CVE List
  • Linuxaffected: 30d1d9f3495463f7c026e4c553127f79b486fcd6 before c25587fa26761e623198b4f47151fe79d09ccde6CVE List
  • Linuxaffected: 67dc3b40fae71b6b11c71e7ff69bac0758818c05 before 71ccacde407b7d8f0ef48974a0d2524602fd5c44CVE List
  • Linuxaffected: bbc310caa2b6bf5fe42896ba27da0fbc12e4ac51 before be00deee60044ffa820f9436415caeb665b2cda0CVE List
  • Linuxaffected: b230e5bf501c5edaf2eb0991cb862ac142031d4b before 9240fc1f2cde5331c61608da21b00394602ca762CVE List
  • Linuxaffected: b230e5bf501c5edaf2eb0991cb862ac142031d4b before 6d91041bb38b97e2feb625123cc0529d7b83a0e1CVE List
  • Linuxaffected: 6.12.111 before 6.12.112CVE List
  • Linuxaffected: 6.18.53 before 6.18.55CVE List
  • Linuxaffected: 7.2CVE List
  • Linuxunaffected: all versions before 7.2CVE List
  • Linuxunaffected: 6.12.112 through 6.12.*CVE List
  • Linuxunaffected: 6.18.55 through 6.18.*CVE List
  • Linuxunaffected: 7.2.9 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 8