GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-80819 (GCVE-0-2026-80819)

Vulnerability from cvelistv5 – Published: 2026-09-04 15:13 – Updated: 2026-09-04 15:13
VLAI
Title
Bluetooth: RFCOMM: take rfcomm_mutex for the deferred setup accept
Summary
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: RFCOMM: take rfcomm_mutex for the deferred setup accept rfcomm_sock_recvmsg() completes a deferred setup by calling rfcomm_dlc_accept() without holding any RFCOMM lock: if (test_and_clear_bit(RFCOMM_DEFER_SETUP, &d->flags)) { rfcomm_dlc_accept(d); return 0; } and rfcomm_dlc_accept() dereferences the session on its first line: struct sock *sk = d->session->sock->sk; Every other path that touches d->session runs under rfcomm_mutex: rfcomm_dlc_open(), rfcomm_dlc_close(), rfcomm_dlc_exists(), rfcomm_dlc_send_rpn(), and the RFCOMM thread through rfcomm_process_sessions(). rfcomm_connect_ind() is even documented as "called under rfcomm_lock()". This call site is the only one that skips it. The RFCOMM_DEFER_SETUP bit looks like it serialises the accept against teardown, since __rfcomm_dlc_close() returns early when it wins the test_and_clear. But rfcomm_recv_disc() forces the state first: d->state = BT_CLOSED; __rfcomm_dlc_close(d, err); and the early return only covers BT_CONNECT, BT_CONFIG, BT_OPEN and BT_CONNECT2. With the state already BT_CLOSED that switch does not match, the bit is never consulted, and __rfcomm_dlc_close() falls through to rfcomm_dlc_unlink(), which sets d->session = NULL. So a remote DISC on a deferred dlc clears the session while leaving RFCOMM_DEFER_SETUP set. The next recvmsg() then passes the test_and_clear and dereferences a NULL session. No timing window is needed: once the DISC has been processed, the dereference is unconditional. Give rfcomm_dlc_accept() the same shape as rfcomm_dlc_open() and rfcomm_dlc_close(): an exported wrapper that takes rfcomm_mutex and re-checks the session, around a __rfcomm_dlc_accept() that the two in-core callers, which already hold the mutex, keep using. Reproduced on a KASAN + PROVE_LOCKING kernel with a BR/EDR peer emulated over /dev/vhci: the peer brings up an ACL link, opens L2CAP on the RFCOMM PSM, starts a session, opens a dlc on a channel bound with BT_DEFER_SETUP, and sends DISC after the socket is accepted. recv() on the accepted socket then hits: Oops: general protection fault KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017] RIP: 0010:rfcomm_dlc_accept+0x54/0x350 Call Trace: rfcomm_sock_recvmsg+0x1cd/0x230 sock_recvmsg+0x166/0x1c0 __sys_recvfrom+0x20d/0x300 0x10 is the offset of sock in struct rfcomm_session. With this patch the same run completes with recv() returning 0 and no report, and lockdep stays quiet, confirming rfcomm_mutex is still taken before lock_sock on this path as it is on the thread side.
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: bb23c0ab824653be4aa7dfca15b07b3059717004 , < d8d686dd5662a7c4745e4515f1237a9f3b7df181 (git)
Affected: bb23c0ab824653be4aa7dfca15b07b3059717004 , < eb71d5a1ea8ff2683e394b48ae3cd676037ab4c2 (git)
Affected: bb23c0ab824653be4aa7dfca15b07b3059717004 , < 56f0aa75c7640e46397ef73bea251fcbef9150c0 (git)
Affected: bb23c0ab824653be4aa7dfca15b07b3059717004 , < 362726c9c6e56eea4262109183e49868c39ccd3a (git)
Affected: bb23c0ab824653be4aa7dfca15b07b3059717004 , < 825b95561d7b7c393df9e7bc295451aaeadc3d18 (git)
Affected: bb23c0ab824653be4aa7dfca15b07b3059717004 , < d4b1a13b1eff2e80925c7368ffdeaaa50cba93df (git)
Affected: bb23c0ab824653be4aa7dfca15b07b3059717004 , < 355bfd57ca4ca881c6eb03ca813b440a094b1f44 (git)
Affected: bb23c0ab824653be4aa7dfca15b07b3059717004 , < b405c2f96ae2e37375105881890f7738833b1d62 (git)
Affected: bb23c0ab824653be4aa7dfca15b07b3059717004 , < 43a556b2fd43f2df6dded59c2e26560a27874c24 (git)
guessed Create a notification for this product.
Linux Linux Affected: 2.6.30
Unaffected: 0 , < 2.6.30 (semver)
Unaffected: 5.10.267 , ≤ 5.10.* (semver)
Unaffected: 5.15.218 , ≤ 5.15.* (semver)
Unaffected: 6.1.185 , ≤ 6.1.* (semver)
Unaffected: 6.6.154 , ≤ 6.6.* (semver)
Unaffected: 6.12.106 , ≤ 6.12.* (semver)
Unaffected: 6.18.47 , ≤ 6.18.* (semver)
Unaffected: 7.1.11 , ≤ 7.1.* (semver)
Unaffected: 7.2.1 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/bluetooth/rfcomm/core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "d8d686dd5662a7c4745e4515f1237a9f3b7df181",
              "status": "affected",
              "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
              "versionType": "git"
            },
            {
              "lessThan": "eb71d5a1ea8ff2683e394b48ae3cd676037ab4c2",
              "status": "affected",
              "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
              "versionType": "git"
            },
            {
              "lessThan": "56f0aa75c7640e46397ef73bea251fcbef9150c0",
              "status": "affected",
              "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
              "versionType": "git"
            },
            {
              "lessThan": "362726c9c6e56eea4262109183e49868c39ccd3a",
              "status": "affected",
              "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
              "versionType": "git"
            },
            {
              "lessThan": "825b95561d7b7c393df9e7bc295451aaeadc3d18",
              "status": "affected",
              "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
              "versionType": "git"
            },
            {
              "lessThan": "d4b1a13b1eff2e80925c7368ffdeaaa50cba93df",
              "status": "affected",
              "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
              "versionType": "git"
            },
            {
              "lessThan": "355bfd57ca4ca881c6eb03ca813b440a094b1f44",
              "status": "affected",
              "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
              "versionType": "git"
            },
            {
              "lessThan": "b405c2f96ae2e37375105881890f7738833b1d62",
              "status": "affected",
              "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
              "versionType": "git"
            },
            {
              "lessThan": "43a556b2fd43f2df6dded59c2e26560a27874c24",
              "status": "affected",
              "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/bluetooth/rfcomm/core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "2.6.30"
            },
            {
              "lessThan": "2.6.30",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.267",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.218",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.185",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.154",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.106",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.47",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.11",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.1",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.267",
                  "versionStartIncluding": "2.6.30",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.218",
                  "versionStartIncluding": "2.6.30",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.185",
                  "versionStartIncluding": "2.6.30",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.154",
                  "versionStartIncluding": "2.6.30",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.106",
                  "versionStartIncluding": "2.6.30",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.47",
                  "versionStartIncluding": "2.6.30",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.11",
                  "versionStartIncluding": "2.6.30",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.1",
                  "versionStartIncluding": "2.6.30",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc1",
                  "versionStartIncluding": "2.6.30",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: RFCOMM: take rfcomm_mutex for the deferred setup accept\n\nrfcomm_sock_recvmsg() completes a deferred setup by calling\nrfcomm_dlc_accept() without holding any RFCOMM lock:\n\n\tif (test_and_clear_bit(RFCOMM_DEFER_SETUP, \u0026d-\u003eflags)) {\n\t\trfcomm_dlc_accept(d);\n\t\treturn 0;\n\t}\n\nand rfcomm_dlc_accept() dereferences the session on its first line:\n\n\tstruct sock *sk = d-\u003esession-\u003esock-\u003esk;\n\nEvery other path that touches d-\u003esession runs under rfcomm_mutex:\nrfcomm_dlc_open(), rfcomm_dlc_close(), rfcomm_dlc_exists(),\nrfcomm_dlc_send_rpn(), and the RFCOMM thread through\nrfcomm_process_sessions(). rfcomm_connect_ind() is even documented as\n\"called under rfcomm_lock()\". This call site is the only one that skips\nit.\n\nThe RFCOMM_DEFER_SETUP bit looks like it serialises the accept against\nteardown, since __rfcomm_dlc_close() returns early when it wins the\ntest_and_clear. But rfcomm_recv_disc() forces the state first:\n\n\td-\u003estate = BT_CLOSED;\n\t__rfcomm_dlc_close(d, err);\n\nand the early return only covers BT_CONNECT, BT_CONFIG, BT_OPEN and\nBT_CONNECT2. With the state already BT_CLOSED that switch does not\nmatch, the bit is never consulted, and __rfcomm_dlc_close() falls\nthrough to rfcomm_dlc_unlink(), which sets d-\u003esession = NULL.\n\nSo a remote DISC on a deferred dlc clears the session while leaving\nRFCOMM_DEFER_SETUP set. The next recvmsg() then passes the\ntest_and_clear and dereferences a NULL session. No timing window is\nneeded: once the DISC has been processed, the dereference is\nunconditional.\n\nGive rfcomm_dlc_accept() the same shape as rfcomm_dlc_open() and\nrfcomm_dlc_close(): an exported wrapper that takes rfcomm_mutex and\nre-checks the session, around a __rfcomm_dlc_accept() that the two\nin-core callers, which already hold the mutex, keep using.\n\nReproduced on a KASAN + PROVE_LOCKING kernel with a BR/EDR peer emulated\nover /dev/vhci: the peer brings up an ACL link, opens L2CAP on the\nRFCOMM PSM, starts a session, opens a dlc on a channel bound with\nBT_DEFER_SETUP, and sends DISC after the socket is accepted. recv() on\nthe accepted socket then hits:\n\n  Oops: general protection fault\n  KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017]\n  RIP: 0010:rfcomm_dlc_accept+0x54/0x350\n  Call Trace:\n    rfcomm_sock_recvmsg+0x1cd/0x230\n    sock_recvmsg+0x166/0x1c0\n    __sys_recvfrom+0x20d/0x300\n\n0x10 is the offset of sock in struct rfcomm_session. With this patch the\nsame run completes with recv() returning 0 and no report, and lockdep\nstays quiet, confirming rfcomm_mutex is still taken before lock_sock on\nthis path as it is on the thread side."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-04T15:13:40.309Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/d8d686dd5662a7c4745e4515f1237a9f3b7df181"
        },
        {
          "url": "https://git.kernel.org/stable/c/eb71d5a1ea8ff2683e394b48ae3cd676037ab4c2"
        },
        {
          "url": "https://git.kernel.org/stable/c/56f0aa75c7640e46397ef73bea251fcbef9150c0"
        },
        {
          "url": "https://git.kernel.org/stable/c/362726c9c6e56eea4262109183e49868c39ccd3a"
        },
        {
          "url": "https://git.kernel.org/stable/c/825b95561d7b7c393df9e7bc295451aaeadc3d18"
        },
        {
          "url": "https://git.kernel.org/stable/c/d4b1a13b1eff2e80925c7368ffdeaaa50cba93df"
        },
        {
          "url": "https://git.kernel.org/stable/c/355bfd57ca4ca881c6eb03ca813b440a094b1f44"
        },
        {
          "url": "https://git.kernel.org/stable/c/b405c2f96ae2e37375105881890f7738833b1d62"
        },
        {
          "url": "https://git.kernel.org/stable/c/43a556b2fd43f2df6dded59c2e26560a27874c24"
        }
      ],
      "title": "Bluetooth: RFCOMM: take rfcomm_mutex for the deferred setup accept",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-80819",
    "datePublished": "2026-09-04T15:13:40.309Z",
    "dateReserved": "2026-08-26T14:34:25.795Z",
    "dateUpdated": "2026-09-04T15:13:40.309Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-80819",
      "date": "2026-09-18",
      "epss": "0.00195",
      "percentile": "0.0954"
    },
    "microsoft_vex": {
      "current_release_date": "2026-09-07T01:55:33.000Z",
      "cve": "CVE-2026-80819",
      "id": "msrc_CVE-2026-80819",
      "initial_release_date": "2026-09-07T01:55:33.000Z",
      "product_status:known_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "Bluetooth: RFCOMM: take rfcomm_mutex for the deferred setup accept",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-80819.json",
      "version": "1"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "net/bluetooth/rfcomm/core.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "d8d686dd5662a7c4745e4515f1237a9f3b7df181",
                    "status": "affected",
                    "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "eb71d5a1ea8ff2683e394b48ae3cd676037ab4c2",
                    "status": "affected",
                    "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "56f0aa75c7640e46397ef73bea251fcbef9150c0",
                    "status": "affected",
                    "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "362726c9c6e56eea4262109183e49868c39ccd3a",
                    "status": "affected",
                    "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "825b95561d7b7c393df9e7bc295451aaeadc3d18",
                    "status": "affected",
                    "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "d4b1a13b1eff2e80925c7368ffdeaaa50cba93df",
                    "status": "affected",
                    "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "355bfd57ca4ca881c6eb03ca813b440a094b1f44",
                    "status": "affected",
                    "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "b405c2f96ae2e37375105881890f7738833b1d62",
                    "status": "affected",
                    "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "43a556b2fd43f2df6dded59c2e26560a27874c24",
                    "status": "affected",
                    "version": "bb23c0ab824653be4aa7dfca15b07b3059717004",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "net/bluetooth/rfcomm/core.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "2.6.30"
                  },
                  {
                    "lessThan": "2.6.30",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.10.*",
                    "status": "unaffected",
                    "version": "5.10.267",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.15.*",
                    "status": "unaffected",
                    "version": "5.15.218",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.185",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.154",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.106",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.47",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.11",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.1",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc1",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: RFCOMM: take rfcomm_mutex for the deferred setup accept\n\nrfcomm_sock_recvmsg() completes a deferred setup by calling\nrfcomm_dlc_accept() without holding any RFCOMM lock:\n\n\tif (test_and_clear_bit(RFCOMM_DEFER_SETUP, \u0026d-\u003eflags)) {\n\t\trfcomm_dlc_accept(d);\n\t\treturn 0;\n\t}\n\nand rfcomm_dlc_accept() dereferences the session on its first line:\n\n\tstruct sock *sk = d-\u003esession-\u003esock-\u003esk;\n\nEvery other path that touches d-\u003esession runs under rfcomm_mutex:\nrfcomm_dlc_open(), rfcomm_dlc_close(), rfcomm_dlc_exists(),\nrfcomm_dlc_send_rpn(), and the RFCOMM thread through\nrfcomm_process_sessions(). rfcomm_connect_ind() is even documented as\n\"called under rfcomm_lock()\". This call site is the only one that skips\nit.\n\nThe RFCOMM_DEFER_SETUP bit looks like it serialises the accept against\nteardown, since __rfcomm_dlc_close() returns early when it wins the\ntest_and_clear. But rfcomm_recv_disc() forces the state first:\n\n\td-\u003estate = BT_CLOSED;\n\t__rfcomm_dlc_close(d, err);\n\nand the early return only covers BT_CONNECT, BT_CONFIG, BT_OPEN and\nBT_CONNECT2. With the state already BT_CLOSED that switch does not\nmatch, the bit is never consulted, and __rfcomm_dlc_close() falls\nthrough to rfcomm_dlc_unlink(), which sets d-\u003esession = NULL.\n\nSo a remote DISC on a deferred dlc clears the session while leaving\nRFCOMM_DEFER_SETUP set. The next recvmsg() then passes the\ntest_and_clear and dereferences a NULL session. No timing window is\nneeded: once the DISC has been processed, the dereference is\nunconditional.\n\nGive rfcomm_dlc_accept() the same shape as rfcomm_dlc_open() and\nrfcomm_dlc_close(): an exported wrapper that takes rfcomm_mutex and\nre-checks the session, around a __rfcomm_dlc_accept() that the two\nin-core callers, which already hold the mutex, keep using.\n\nReproduced on a KASAN + PROVE_LOCKING kernel with a BR/EDR peer emulated\nover /dev/vhci: the peer brings up an ACL link, opens L2CAP on the\nRFCOMM PSM, starts a session, opens a dlc on a channel bound with\nBT_DEFER_SETUP, and sends DISC after the socket is accepted. recv() on\nthe accepted socket then hits:\n\n  Oops: general protection fault\n  KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017]\n  RIP: 0010:rfcomm_dlc_accept+0x54/0x350\n  Call Trace:\n    rfcomm_sock_recvmsg+0x1cd/0x230\n    sock_recvmsg+0x166/0x1c0\n    __sys_recvfrom+0x20d/0x300\n\n0x10 is the offset of sock in struct rfcomm_session. With this patch the\nsame run completes with recv() returning 0 and no report, and lockdep\nstays quiet, confirming rfcomm_mutex is still taken before lock_sock on\nthis path as it is on the thread side."
          }
        ],
        "id": "CVE-2026-80819",
        "lastModified": "2026-09-04T16:18:09.583",
        "metrics": {},
        "published": "2026-09-04T16:18:09.583",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/355bfd57ca4ca881c6eb03ca813b440a094b1f44"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/362726c9c6e56eea4262109183e49868c39ccd3a"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/43a556b2fd43f2df6dded59c2e26560a27874c24"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/56f0aa75c7640e46397ef73bea251fcbef9150c0"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/825b95561d7b7c393df9e7bc295451aaeadc3d18"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/b405c2f96ae2e37375105881890f7738833b1d62"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/d4b1a13b1eff2e80925c7368ffdeaaa50cba93df"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/d8d686dd5662a7c4745e4515f1237a9f3b7df181"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/eb71d5a1ea8ff2683e394b48ae3cd676037ab4c2"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-15T01:07:53Z",
      "cve": "CVE-2026-80819",
      "id": "CVE-2026-80819",
      "initial_release_date": "2026-09-08T17:16:54Z",
      "product_status:first_fixed": "23",
      "product_status:known_affected": "269",
      "product_status:known_not_affected": "84",
      "product_status:recommended": "4",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-80819",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-80819.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…