CVE-2026-64434 (GCVE-0-2026-64434)
Vulnerability from cvelistv5
Published
2026-07-25 08:51
Modified
2026-10-19 20:38
Summary
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: Fix UAF in channel timeout by holding conn ref l2cap_chan_timeout() runs asynchronously and accesses chan->conn. If the connection is torn down while the timer is running or pending, chan->conn can be freed, leading to a use-after-free when the timer worker attempts to lock conn->lock: | BUG: KASAN: slab-use-after-free in instrument_atomic_read_write include/linux/instrumented.h:112 [inline] | BUG: KASAN: slab-use-after-free in atomic_long_try_cmpxchg_acquire include/linux/atomic/atomic-instrumented.h:4456 [inline] | BUG: KASAN: slab-use-after-free in __mutex_trylock_fast kernel/locking/mutex.c:161 [inline] | BUG: KASAN: slab-use-after-free in mutex_lock+0x4f/0xa0 kernel/locking/mutex.c:318 | Write of size 8 at addr ffff8881298d9550 by task kworker/2:1/83 | | CPU: 2 UID: 0 PID: 83 Comm: kworker/2:1 Not tainted 7.1.0-rc6-next-20260601-dirty #6 PREEMPT(full) | Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.17.0-debian-1.17.0-1 04/01/2014 | Workqueue: events l2cap_chan_timeout | Call Trace: | <TASK> | instrument_atomic_read_write include/linux/instrumented.h:112 [inline] | atomic_long_try_cmpxchg_acquire include/linux/atomic/atomic-instrumented.h:4456 [inline] | __mutex_trylock_fast kernel/locking/mutex.c:161 [inline] | mutex_lock+0x4f/0xa0 kernel/locking/mutex.c:318 | l2cap_chan_timeout+0x5d/0x1b0 net/bluetooth/l2cap_core.c:422 | process_one_work kernel/workqueue.c:3326 [inline] | process_scheduled_works+0x7c8/0xfb0 kernel/workqueue.c:3409 | worker_thread+0x8a9/0xcf0 kernel/workqueue.c:3490 | kthread+0x346/0x430 kernel/kthread.c:436 | ret_from_fork+0x1a3/0x470 arch/x86/kernel/process.c:158 | ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 | </TASK> | | Allocated by task 320: | l2cap_conn_add+0xa7/0x820 net/bluetooth/l2cap_core.c:7075 | l2cap_connect_cfm+0xdb/0xd70 net/bluetooth/l2cap_core.c:7452 | hci_connect_cfm include/net/bluetooth/hci_core.h:2139 [inline] | hci_remote_features_evt+0x52f/0x9f0 net/bluetooth/hci_event.c:3760 | hci_event_func net/bluetooth/hci_event.c:7796 [inline] | hci_event_packet+0x561/0xa70 net/bluetooth/hci_event.c:7847 | hci_rx_work+0x370/0x890 net/bluetooth/hci_core.c:4040 | process_one_work kernel/workqueue.c:3326 [inline] | process_scheduled_works+0x7c8/0xfb0 kernel/workqueue.c:3409 | worker_thread+0x8a9/0xcf0 kernel/workqueue.c:3490 | kthread+0x346/0x430 kernel/kthread.c:436 | ret_from_fork+0x1a3/0x470 arch/x86/kernel/process.c:158 | ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 | | Freed by task 322: | hci_disconn_cfm include/net/bluetooth/hci_core.h:2154 [inline] | hci_conn_hash_flush+0x101/0x1f0 net/bluetooth/hci_conn.c:2736 | hci_dev_close_sync+0x889/0xde0 net/bluetooth/hci_sync.c:5405 | hci_dev_do_close net/bluetooth/hci_core.c:502 [inline] | hci_unregister_dev+0x1f7/0x370 net/bluetooth/hci_core.c:2679 | vhci_release+0x12a/0x180 drivers/bluetooth/hci_vhci.c:690 | __fput+0x369/0x890 fs/file_table.c:510 | task_work_run+0x160/0x1d0 kernel/task_work.c:233 | get_signal+0xf5b/0x1120 kernel/signal.c:2810 | arch_do_signal_or_restart+0x4d/0x600 arch/x86/kernel/signal.c:337 | __exit_to_user_mode_loop kernel/entry/common.c:64 [inline] | exit_to_user_mode_loop+0x85/0x510 kernel/entry/common.c:98 | do_syscall_64+0x263/0x3d0 arch/x86/entry/syscall_64.c:100 | entry_SYSCALL_64_after_hwframe+0x77/0x7f | | The buggy address belongs to the object at ffff8881298d9400 | which belongs to the cache kmalloc-512 of size 512 | The buggy address is located 336 bytes inside of | freed 512-byte region [ffff8881298d9400, ffff8881298d9600) Fix it by having chan->conn hold a reference to l2cap_conn (via l2cap_conn_get) when the channel is added to the connection, and releasing it in the channel destructor. This ensures the l2cap_conn remains alive as long as the channel exists. A new FLAG_DEL channel flag is introduced to indicate that the ch ---truncated---
Impacted products
Vendor Product Version
Linux Linux Version: 3634cbdc2eb414b69ffa752ddbe5e0458518e321
Version: e1c100e2d61bd8c718b7d91fe3e050780a9bf72d
Version: deb8493a8fa599f6c95e2465b12bfdfb7f94a1d9
Version: 89dec92041717b027216e110599e4f6d6c921b79
Version: 50dfec218808b148ab4247b1858031b7a32015c5
Version: 859d3ace791ed878ae9ba5522c7844d960da8f88
Version: 8c8e620467a7b51562dbcefbd1f09f288d7d710d
Version: 8c8e620467a7b51562dbcefbd1f09f288d7d710d
Version: 7555fd885a0603f50e49a655850a1f2bd8a25398
Version: 5.10.259   ≤
Version: 5.15.210   ≤
Version: 6.1.176   ≤
Version: 6.6.143   ≤
Version: 6.12.93   ≤
Version: 6.18.35   ≤
Version: 7.0.12   ≤
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-64434",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-10-16T15:40:36.220743Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "problemTypes": [
          {
            "descriptions": [
              {
                "cweId": "CWE-416",
                "description": "CWE-416 Use After Free",
                "lang": "en",
                "type": "CWE"
              }
            ]
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-10-19T20:38:28.580Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "include/net/bluetooth/l2cap.h",
            "net/bluetooth/l2cap_core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "8f90405a4a6f1f1880dc07996b47bf57c712bd8a",
              "status": "affected",
              "version": "3634cbdc2eb414b69ffa752ddbe5e0458518e321",
              "versionType": "git"
            },
            {
              "lessThan": "32d783cafb46ff3ca58e6f9fd62c9c5f35eaf26b",
              "status": "affected",
              "version": "e1c100e2d61bd8c718b7d91fe3e050780a9bf72d",
              "versionType": "git"
            },
            {
              "lessThan": "8922c7940bae9ce4b1736dddb6362370793835c2",
              "status": "affected",
              "version": "deb8493a8fa599f6c95e2465b12bfdfb7f94a1d9",
              "versionType": "git"
            },
            {
              "lessThan": "91047a4396a8b1857a6f712a90cf33ec0012b189",
              "status": "affected",
              "version": "89dec92041717b027216e110599e4f6d6c921b79",
              "versionType": "git"
            },
            {
              "lessThan": "0b0e2bf39cf99e458d991b9df253727e036a7d7d",
              "status": "affected",
              "version": "50dfec218808b148ab4247b1858031b7a32015c5",
              "versionType": "git"
            },
            {
              "lessThan": "d3b739db5dc6f688a60d56da872fabaf65246032",
              "status": "affected",
              "version": "859d3ace791ed878ae9ba5522c7844d960da8f88",
              "versionType": "git"
            },
            {
              "lessThan": "50c38d9f42a529691e4e67ea9cedf4f0bfc8d277",
              "status": "affected",
              "version": "8c8e620467a7b51562dbcefbd1f09f288d7d710d",
              "versionType": "git"
            },
            {
              "lessThan": "b66774b48dd98f07254951f74ea6f513efe7ff8b",
              "status": "affected",
              "version": "8c8e620467a7b51562dbcefbd1f09f288d7d710d",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "7555fd885a0603f50e49a655850a1f2bd8a25398",
              "versionType": "git"
            },
            {
              "lessThan": "5.10.265",
              "status": "affected",
              "version": "5.10.259",
              "versionType": "semver"
            },
            {
              "lessThan": "5.15.216",
              "status": "affected",
              "version": "5.15.210",
              "versionType": "semver"
            },
            {
              "lessThan": "6.1.183",
              "status": "affected",
              "version": "6.1.176",
              "versionType": "semver"
            },
            {
              "lessThan": "6.6.145",
              "status": "affected",
              "version": "6.6.143",
              "versionType": "semver"
            },
            {
              "lessThan": "6.12.97",
              "status": "affected",
              "version": "6.12.93",
              "versionType": "semver"
            },
            {
              "lessThan": "6.18.39",
              "status": "affected",
              "version": "6.18.35",
              "versionType": "semver"
            },
            {
              "lessThan": "7.1",
              "status": "affected",
              "version": "7.0.12",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "include/net/bluetooth/l2cap.h",
            "net/bluetooth/l2cap_core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "7.1"
            },
            {
              "lessThan": "7.1",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.265",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.216",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.183",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.145",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.97",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.39",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.265",
                  "versionStartIncluding": "5.10.259",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.216",
                  "versionStartIncluding": "5.15.210",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.183",
                  "versionStartIncluding": "6.1.176",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.145",
                  "versionStartIncluding": "6.6.143",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.97",
                  "versionStartIncluding": "6.12.93",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.39",
                  "versionStartIncluding": "6.18.35",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.4",
                  "versionStartIncluding": "7.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "7.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "7.0.12",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: L2CAP: Fix UAF in channel timeout by holding conn ref\n\nl2cap_chan_timeout() runs asynchronously and accesses chan-\u003econn. If\nthe connection is torn down while the timer is running or pending,\nchan-\u003econn can be freed, leading to a use-after-free when the timer\nworker attempts to lock conn-\u003elock:\n\n| BUG: KASAN: slab-use-after-free in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]\n| BUG: KASAN: slab-use-after-free in atomic_long_try_cmpxchg_acquire include/linux/atomic/atomic-instrumented.h:4456 [inline]\n| BUG: KASAN: slab-use-after-free in __mutex_trylock_fast kernel/locking/mutex.c:161 [inline]\n| BUG: KASAN: slab-use-after-free in mutex_lock+0x4f/0xa0 kernel/locking/mutex.c:318\n| Write of size 8 at addr ffff8881298d9550 by task kworker/2:1/83\n|\n| CPU: 2 UID: 0 PID: 83 Comm: kworker/2:1 Not tainted 7.1.0-rc6-next-20260601-dirty #6 PREEMPT(full)\n| Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.17.0-debian-1.17.0-1 04/01/2014\n| Workqueue: events l2cap_chan_timeout\n| Call Trace:\n|  \u003cTASK\u003e\n|  instrument_atomic_read_write include/linux/instrumented.h:112 [inline]\n|  atomic_long_try_cmpxchg_acquire include/linux/atomic/atomic-instrumented.h:4456 [inline]\n|  __mutex_trylock_fast kernel/locking/mutex.c:161 [inline]\n|  mutex_lock+0x4f/0xa0 kernel/locking/mutex.c:318\n|  l2cap_chan_timeout+0x5d/0x1b0 net/bluetooth/l2cap_core.c:422\n|  process_one_work kernel/workqueue.c:3326 [inline]\n|  process_scheduled_works+0x7c8/0xfb0 kernel/workqueue.c:3409\n|  worker_thread+0x8a9/0xcf0 kernel/workqueue.c:3490\n|  kthread+0x346/0x430 kernel/kthread.c:436\n|  ret_from_fork+0x1a3/0x470 arch/x86/kernel/process.c:158\n|  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245\n|  \u003c/TASK\u003e\n|\n| Allocated by task 320:\n|  l2cap_conn_add+0xa7/0x820 net/bluetooth/l2cap_core.c:7075\n|  l2cap_connect_cfm+0xdb/0xd70 net/bluetooth/l2cap_core.c:7452\n|  hci_connect_cfm include/net/bluetooth/hci_core.h:2139 [inline]\n|  hci_remote_features_evt+0x52f/0x9f0 net/bluetooth/hci_event.c:3760\n|  hci_event_func net/bluetooth/hci_event.c:7796 [inline]\n|  hci_event_packet+0x561/0xa70 net/bluetooth/hci_event.c:7847\n|  hci_rx_work+0x370/0x890 net/bluetooth/hci_core.c:4040\n|  process_one_work kernel/workqueue.c:3326 [inline]\n|  process_scheduled_works+0x7c8/0xfb0 kernel/workqueue.c:3409\n|  worker_thread+0x8a9/0xcf0 kernel/workqueue.c:3490\n|  kthread+0x346/0x430 kernel/kthread.c:436\n|  ret_from_fork+0x1a3/0x470 arch/x86/kernel/process.c:158\n|  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245\n|\n| Freed by task 322:\n|  hci_disconn_cfm include/net/bluetooth/hci_core.h:2154 [inline]\n|  hci_conn_hash_flush+0x101/0x1f0 net/bluetooth/hci_conn.c:2736\n|  hci_dev_close_sync+0x889/0xde0 net/bluetooth/hci_sync.c:5405\n|  hci_dev_do_close net/bluetooth/hci_core.c:502 [inline]\n|  hci_unregister_dev+0x1f7/0x370 net/bluetooth/hci_core.c:2679\n|  vhci_release+0x12a/0x180 drivers/bluetooth/hci_vhci.c:690\n|  __fput+0x369/0x890 fs/file_table.c:510\n|  task_work_run+0x160/0x1d0 kernel/task_work.c:233\n|  get_signal+0xf5b/0x1120 kernel/signal.c:2810\n|  arch_do_signal_or_restart+0x4d/0x600 arch/x86/kernel/signal.c:337\n|  __exit_to_user_mode_loop kernel/entry/common.c:64 [inline]\n|  exit_to_user_mode_loop+0x85/0x510 kernel/entry/common.c:98\n|  do_syscall_64+0x263/0x3d0 arch/x86/entry/syscall_64.c:100\n|  entry_SYSCALL_64_after_hwframe+0x77/0x7f\n|\n| The buggy address belongs to the object at ffff8881298d9400\n|  which belongs to the cache kmalloc-512 of size 512\n| The buggy address is located 336 bytes inside of\n|  freed 512-byte region [ffff8881298d9400, ffff8881298d9600)\n\nFix it by having chan-\u003econn hold a reference to l2cap_conn (via\nl2cap_conn_get) when the channel is added to the connection, and\nreleasing it in the channel destructor. This ensures the l2cap_conn\nremains alive as long as the channel exists.\n\nA new FLAG_DEL channel flag is introduced to indicate that the ch\n---truncated---"
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:A - An unauthenticated Bluetooth peer within radio range can reach the vulnerable worker by creating a half-configured L2CAP channel and subsequently terminating the ACL connection.\nAC:L - The attacker controls both channel creation and connection teardown, can leave the 40-second channel timer armed, and can repeat or parallelize attempts to win the race.\nPR:N - The BR/EDR signaling path processes incoming L2CAP requests before application acceptance, and an SDP listener permits this path without pairing or authentication.\nUI:N - Exploitation requires no victim action because an already-running Bluetooth service and the kernel independently process the connection, timer, and disconnection.\nS:U - The UAF compromises the host kernel within the same security authority and does not inherently cross a VM, IOMMU, or comparable boundary.\nC:H - The freed kmalloc object can be reclaimed with attacker-influenced contents, allowing the UAF to support kernel-memory disclosure primitives.\nI:H - The worker performs mutex writes into the freed allocation, enabling heap corruption and potentially arbitrary write or kernel control-flow hijacking after heap grooming.\nA:H - The stale mutex access can corrupt memory, trigger an oops or panic, and can be retriggered by a nearby Bluetooth peer."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-19T16:28:16.061Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/8f90405a4a6f1f1880dc07996b47bf57c712bd8a"
        },
        {
          "url": "https://git.kernel.org/stable/c/32d783cafb46ff3ca58e6f9fd62c9c5f35eaf26b"
        },
        {
          "url": "https://git.kernel.org/stable/c/8922c7940bae9ce4b1736dddb6362370793835c2"
        },
        {
          "url": "https://git.kernel.org/stable/c/91047a4396a8b1857a6f712a90cf33ec0012b189"
        },
        {
          "url": "https://git.kernel.org/stable/c/0b0e2bf39cf99e458d991b9df253727e036a7d7d"
        },
        {
          "url": "https://git.kernel.org/stable/c/d3b739db5dc6f688a60d56da872fabaf65246032"
        },
        {
          "url": "https://git.kernel.org/stable/c/50c38d9f42a529691e4e67ea9cedf4f0bfc8d277"
        },
        {
          "url": "https://git.kernel.org/stable/c/b66774b48dd98f07254951f74ea6f513efe7ff8b"
        }
      ],
      "title": "Bluetooth: L2CAP: Fix UAF in channel timeout by holding conn ref",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-64434",
    "datePublished": "2026-07-25T08:51:09.066Z",
    "dateReserved": "2026-07-19T15:36:31.787Z",
    "dateUpdated": "2026-10-19T20:38:28.580Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-64434\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-10-16T15:40:36.220743Z\"}}}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-416\", \"description\": \"CWE-416 Use After Free\"}]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-10-16T15:40:36.860Z\"}}], \"cna\": {\"title\": \"Bluetooth: L2CAP: Fix UAF in channel timeout by holding conn ref\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 8.8, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:A - An unauthenticated Bluetooth peer within radio range can reach the vulnerable worker by creating a half-configured L2CAP channel and subsequently terminating the ACL connection.\\nAC:L - The attacker controls both channel creation and connection teardown, can leave the 40-second channel timer armed, and can repeat or parallelize attempts to win the race.\\nPR:N - The BR/EDR signaling path processes incoming L2CAP requests before application acceptance, and an SDP listener permits this path without pairing or authentication.\\nUI:N - Exploitation requires no victim action because an already-running Bluetooth service and the kernel independently process the connection, timer, and disconnection.\\nS:U - The UAF compromises the host kernel within the same security authority and does not inherently cross a VM, IOMMU, or comparable boundary.\\nC:H - The freed kmalloc object can be reclaimed with attacker-influenced contents, allowing the UAF to support kernel-memory disclosure primitives.\\nI:H - The worker performs mutex writes into the freed allocation, enabling heap corruption and potentially arbitrary write or kernel control-flow hijacking after heap grooming.\\nA:H - The stale mutex access can corrupt memory, trigger an oops or panic, and can be retriggered by a nearby Bluetooth peer.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"3634cbdc2eb414b69ffa752ddbe5e0458518e321\", \"lessThan\": \"8f90405a4a6f1f1880dc07996b47bf57c712bd8a\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"e1c100e2d61bd8c718b7d91fe3e050780a9bf72d\", \"lessThan\": \"32d783cafb46ff3ca58e6f9fd62c9c5f35eaf26b\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"deb8493a8fa599f6c95e2465b12bfdfb7f94a1d9\", \"lessThan\": \"8922c7940bae9ce4b1736dddb6362370793835c2\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"89dec92041717b027216e110599e4f6d6c921b79\", \"lessThan\": \"91047a4396a8b1857a6f712a90cf33ec0012b189\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"50dfec218808b148ab4247b1858031b7a32015c5\", \"lessThan\": \"0b0e2bf39cf99e458d991b9df253727e036a7d7d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"859d3ace791ed878ae9ba5522c7844d960da8f88\", \"lessThan\": \"d3b739db5dc6f688a60d56da872fabaf65246032\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"8c8e620467a7b51562dbcefbd1f09f288d7d710d\", \"lessThan\": \"50c38d9f42a529691e4e67ea9cedf4f0bfc8d277\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"8c8e620467a7b51562dbcefbd1f09f288d7d710d\", \"lessThan\": \"b66774b48dd98f07254951f74ea6f513efe7ff8b\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7555fd885a0603f50e49a655850a1f2bd8a25398\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"5.10.259\", \"lessThan\": \"5.10.265\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"5.15.210\", \"lessThan\": \"5.15.216\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"6.1.176\", \"lessThan\": \"6.1.183\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"6.6.143\", \"lessThan\": \"6.6.145\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"6.12.93\", \"lessThan\": \"6.12.97\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"6.18.35\", \"lessThan\": \"6.18.39\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"7.0.12\", \"lessThan\": \"7.1\", \"versionType\": \"semver\"}], \"programFiles\": [\"include/net/bluetooth/l2cap.h\", \"net/bluetooth/l2cap_core.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"7.1\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"7.1\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.10.265\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.15.216\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.183\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.145\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.12.97\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.12.*\"}, {\"status\": \"unaffected\", \"version\": \"6.18.39\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.18.*\"}, {\"status\": \"unaffected\", \"version\": \"7.1.4\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"7.1.*\"}, {\"status\": \"unaffected\", \"version\": \"7.2\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"include/net/bluetooth/l2cap.h\", \"net/bluetooth/l2cap_core.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/8f90405a4a6f1f1880dc07996b47bf57c712bd8a\"}, {\"url\": \"https://git.kernel.org/stable/c/32d783cafb46ff3ca58e6f9fd62c9c5f35eaf26b\"}, {\"url\": \"https://git.kernel.org/stable/c/8922c7940bae9ce4b1736dddb6362370793835c2\"}, {\"url\": \"https://git.kernel.org/stable/c/91047a4396a8b1857a6f712a90cf33ec0012b189\"}, {\"url\": \"https://git.kernel.org/stable/c/0b0e2bf39cf99e458d991b9df253727e036a7d7d\"}, {\"url\": \"https://git.kernel.org/stable/c/d3b739db5dc6f688a60d56da872fabaf65246032\"}, {\"url\": \"https://git.kernel.org/stable/c/50c38d9f42a529691e4e67ea9cedf4f0bfc8d277\"}, {\"url\": \"https://git.kernel.org/stable/c/b66774b48dd98f07254951f74ea6f513efe7ff8b\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nBluetooth: L2CAP: Fix UAF in channel timeout by holding conn ref\\n\\nl2cap_chan_timeout() runs asynchronously and accesses chan-\u003econn. If\\nthe connection is torn down while the timer is running or pending,\\nchan-\u003econn can be freed, leading to a use-after-free when the timer\\nworker attempts to lock conn-\u003elock:\\n\\n| BUG: KASAN: slab-use-after-free in instrument_atomic_read_write include/linux/instrumented.h:112 [inline]\\n| BUG: KASAN: slab-use-after-free in atomic_long_try_cmpxchg_acquire include/linux/atomic/atomic-instrumented.h:4456 [inline]\\n| BUG: KASAN: slab-use-after-free in __mutex_trylock_fast kernel/locking/mutex.c:161 [inline]\\n| BUG: KASAN: slab-use-after-free in mutex_lock+0x4f/0xa0 kernel/locking/mutex.c:318\\n| Write of size 8 at addr ffff8881298d9550 by task kworker/2:1/83\\n|\\n| CPU: 2 UID: 0 PID: 83 Comm: kworker/2:1 Not tainted 7.1.0-rc6-next-20260601-dirty #6 PREEMPT(full)\\n| Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.17.0-debian-1.17.0-1 04/01/2014\\n| Workqueue: events l2cap_chan_timeout\\n| Call Trace:\\n|  \u003cTASK\u003e\\n|  instrument_atomic_read_write include/linux/instrumented.h:112 [inline]\\n|  atomic_long_try_cmpxchg_acquire include/linux/atomic/atomic-instrumented.h:4456 [inline]\\n|  __mutex_trylock_fast kernel/locking/mutex.c:161 [inline]\\n|  mutex_lock+0x4f/0xa0 kernel/locking/mutex.c:318\\n|  l2cap_chan_timeout+0x5d/0x1b0 net/bluetooth/l2cap_core.c:422\\n|  process_one_work kernel/workqueue.c:3326 [inline]\\n|  process_scheduled_works+0x7c8/0xfb0 kernel/workqueue.c:3409\\n|  worker_thread+0x8a9/0xcf0 kernel/workqueue.c:3490\\n|  kthread+0x346/0x430 kernel/kthread.c:436\\n|  ret_from_fork+0x1a3/0x470 arch/x86/kernel/process.c:158\\n|  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245\\n|  \u003c/TASK\u003e\\n|\\n| Allocated by task 320:\\n|  l2cap_conn_add+0xa7/0x820 net/bluetooth/l2cap_core.c:7075\\n|  l2cap_connect_cfm+0xdb/0xd70 net/bluetooth/l2cap_core.c:7452\\n|  hci_connect_cfm include/net/bluetooth/hci_core.h:2139 [inline]\\n|  hci_remote_features_evt+0x52f/0x9f0 net/bluetooth/hci_event.c:3760\\n|  hci_event_func net/bluetooth/hci_event.c:7796 [inline]\\n|  hci_event_packet+0x561/0xa70 net/bluetooth/hci_event.c:7847\\n|  hci_rx_work+0x370/0x890 net/bluetooth/hci_core.c:4040\\n|  process_one_work kernel/workqueue.c:3326 [inline]\\n|  process_scheduled_works+0x7c8/0xfb0 kernel/workqueue.c:3409\\n|  worker_thread+0x8a9/0xcf0 kernel/workqueue.c:3490\\n|  kthread+0x346/0x430 kernel/kthread.c:436\\n|  ret_from_fork+0x1a3/0x470 arch/x86/kernel/process.c:158\\n|  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245\\n|\\n| Freed by task 322:\\n|  hci_disconn_cfm include/net/bluetooth/hci_core.h:2154 [inline]\\n|  hci_conn_hash_flush+0x101/0x1f0 net/bluetooth/hci_conn.c:2736\\n|  hci_dev_close_sync+0x889/0xde0 net/bluetooth/hci_sync.c:5405\\n|  hci_dev_do_close net/bluetooth/hci_core.c:502 [inline]\\n|  hci_unregister_dev+0x1f7/0x370 net/bluetooth/hci_core.c:2679\\n|  vhci_release+0x12a/0x180 drivers/bluetooth/hci_vhci.c:690\\n|  __fput+0x369/0x890 fs/file_table.c:510\\n|  task_work_run+0x160/0x1d0 kernel/task_work.c:233\\n|  get_signal+0xf5b/0x1120 kernel/signal.c:2810\\n|  arch_do_signal_or_restart+0x4d/0x600 arch/x86/kernel/signal.c:337\\n|  __exit_to_user_mode_loop kernel/entry/common.c:64 [inline]\\n|  exit_to_user_mode_loop+0x85/0x510 kernel/entry/common.c:98\\n|  do_syscall_64+0x263/0x3d0 arch/x86/entry/syscall_64.c:100\\n|  entry_SYSCALL_64_after_hwframe+0x77/0x7f\\n|\\n| The buggy address belongs to the object at ffff8881298d9400\\n|  which belongs to the cache kmalloc-512 of size 512\\n| The buggy address is located 336 bytes inside of\\n|  freed 512-byte region [ffff8881298d9400, ffff8881298d9600)\\n\\nFix it by having chan-\u003econn hold a reference to l2cap_conn (via\\nl2cap_conn_get) when the channel is added to the connection, and\\nreleasing it in the channel destructor. This ensures the l2cap_conn\\nremains alive as long as the channel exists.\\n\\nA new FLAG_DEL channel flag is introduced to indicate that the ch\\n---truncated---\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.265\", \"versionStartIncluding\": \"5.10.259\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.216\", \"versionStartIncluding\": \"5.15.210\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.183\", \"versionStartIncluding\": \"6.1.176\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.145\", \"versionStartIncluding\": \"6.6.143\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.12.97\", \"versionStartIncluding\": \"6.12.93\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.18.39\", \"versionStartIncluding\": \"6.18.35\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"7.1.4\", \"versionStartIncluding\": \"7.1\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"7.2\", \"versionStartIncluding\": \"7.1\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionStartIncluding\": \"7.0.12\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-19T16:28:16.061Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2026-64434\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-10-19T20:38:28.580Z\", \"dateReserved\": \"2026-07-19T15:36:31.787Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2026-07-25T08:51:09.066Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…