# CVE-2026-31510: Bluetooth: L2CAP: Fix null-ptr-deref on l2cap_sock_ready_cb

Status: published. Published: 2026-04-22. Updated: 2026-11-05.

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

Bluetooth: L2CAP: Fix null-ptr-deref on l2cap_sock_ready_cb

Before using sk pointer, check if it is null.

Fix the following:

 KASAN: null-ptr-deref in range [0x0000000000000260-0x0000000000000267]
 CPU: 0 UID: 0 PID: 5985 Comm: kworker/0:5 Not tainted 7.0.0-rc4-00029-ga989fde763f4 #1 PREEMPT(full)
 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-9.fc43 06/10/2025
 Workqueue: events l2cap_info_timeout
 RIP: 0010:kasan_byte_accessible+0x12/0x30
 Code: 79 ff ff ff 0f 1f 40 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 40 d6 48 c1 ef 03 48 b8 00 00 00 00 00 fc ff df <0f> b6 04 07 3c 08 0f 92 c0 c3 cc cce
 veth0_macvtap: entered promiscuous mode
 RSP: 0018:ffffc90006e0f808 EFLAGS: 00010202
 RAX: dffffc0000000000 RBX: ffffffff89746018 RCX: 0000000080000001
 RDX: 0000000000000000 RSI: ffffffff89746018 RDI: 000000000000004c
 RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
 R10: dffffc0000000000 R11: ffffffff8aae3e70 R12: 0000000000000000
 R13: 0000000000000260 R14: 0000000000000260 R15: 0000000000000001
 FS:  0000000000000000(0000) GS:ffff8880983c2000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 00005582615a5008 CR3: 000000007007e000 CR4: 0000000000752ef0
 PKRU: 55555554
 Call Trace:
  <TASK>
  __kasan_check_byte+0x12/0x40
  lock_acquire+0x79/0x2e0
  lock_sock_nested+0x48/0x100
  ? l2cap_sock_ready_cb+0x46/0x160
  l2cap_sock_ready_cb+0x46/0x160
  l2cap_conn_start+0x779/0xff0
  ? __pfx_l2cap_conn_start+0x10/0x10
  ? l2cap_info_timeout+0x60/0xa0
  ? __pfx___mutex_lock+0x10/0x10
  l2cap_info_timeout+0x68/0xa0
  ? process_scheduled_works+0xa8d/0x18c0
  process_scheduled_works+0xb6e/0x18c0
  ? __pfx_process_scheduled_works+0x10/0x10
  ? assign_work+0x3d5/0x5e0
  worker_thread+0xa53/0xfc0
  kthread+0x388/0x470
  ? __pfx_worker_thread+0x10/0x10
  ? __pfx_kthread+0x10/0x10
  ret_from_fork+0x51e/0xb90
  ? __pfx_ret_from_fork+0x10/0x10
 veth1_macvtap: entered promiscuous mode
  ? __switch_to+0xc7d/0x1450
  ? __pfx_kthread+0x10/0x10
  ret_from_fork_asm+0x1a/0x30
  </TASK>
 Modules linked in:
 ---[ end trace 0000000000000000 ]---
 batman_adv: batadv0: Interface activated: batadv_slave_0
 batman_adv: batadv0: Interface activated: batadv_slave_1
 netdevsim netdevsim7 netdevsim0: set [1, 0] type 2 family 0 port 6081 - 0
 netdevsim netdevsim7 netdevsim1: set [1, 0] type 2 family 0 port 6081 - 0
 netdevsim netdevsim7 netdevsim2: set [1, 0] type 2 family 0 port 6081 - 0
 netdevsim netdevsim7 netdevsim3: set [1, 0] type 2 family 0 port 6081 - 0
 RIP: 0010:kasan_byte_accessible+0x12/0x30
 Code: 79 ff ff ff 0f 1f 40 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 40 d6 48 c1 ef 03 48 b8 00 00 00 00 00 fc ff df <0f> b6 04 07 3c 08 0f 92 c0 c3 cc cce
 ieee80211 phy39: Selected rate control algorithm 'minstrel_ht'
 RSP: 0018:ffffc90006e0f808 EFLAGS: 00010202
 RAX: dffffc0000000000 RBX: ffffffff89746018 RCX: 0000000080000001
 RDX: 0000000000000000 RSI: ffffffff89746018 RDI: 000000000000004c
 RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
 R10: dffffc0000000000 R11: ffffffff8aae3e70 R12: 0000000000000000
 R13: 0000000000000260 R14: 0000000000000260 R15: 0000000000000001
 FS:  0000000000000000(0000) GS:ffff8880983c2000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 00007f7e16139e9c CR3: 000000000e74e000 CR4: 0000000000752ef0
 PKRU: 55555554
 Kernel panic - not syncing: Fatal exception

## Remediation

No remediation reported in collected sources

## Affected products and versions

- Linux / Linux: ≥ 54a59aa2b562872781d6a8fc89f300d360941691; < d34776c7fa1f2c510f1cdd14823aba701babb4ad (affected, git); ≥ 54a59aa2b562872781d6a8fc89f300d360941691; < 03d4eafb0f3788239df63575951f6b4c97bbfda4 (affected, git); ≥ 54a59aa2b562872781d6a8fc89f300d360941691; < 3c821bc0fbeaa27910a20d0b43c6008d099792af (affected, git); ≥ 54a59aa2b562872781d6a8fc89f300d360941691; < a04a760c06bb591989db659439efdf106f0bae76 (affected, git); ≥ 54a59aa2b562872781d6a8fc89f300d360941691; < 0780f9333852971ca77d110019e3a66ce5a7b100 (affected, git); ≥ 54a59aa2b562872781d6a8fc89f300d360941691; < 1dc6db047919ecd59493cd51248b37381bbabcbb (affected, git); ≥ 54a59aa2b562872781d6a8fc89f300d360941691; < 898b89c90ff9496e64b9331040778cc4e1b28c9d (affected, git); ≥ 54a59aa2b562872781d6a8fc89f300d360941691; < b6552e0503973daf6f23bd6ed9273ef131ee364f (affected, git). Source: CNA: Linux
- Linux / Linux: 3.6 (affected); ≥ 0; < 3.6 (unaffected, semver); ≥ 5.10.253; ≤ 5.10.* (unaffected, semver); ≥ 5.15.203; ≤ 5.15.* (unaffected, semver); ≥ 6.1.168; ≤ 6.1.* (unaffected, semver); ≥ 6.6.131; ≤ 6.6.* (unaffected, semver); ≥ 6.12.80; ≤ 6.12.* (unaffected, semver); ≥ 6.18.21; ≤ 6.18.* (unaffected, semver); ≥ 6.19.11; ≤ 6.19.* (unaffected, semver); ≥ 7.0; ≤ * (unaffected, original_commit_for_fix). Source: CNA: Linux

## Severity and prioritization

- CISA KEV: No listing in collected sources

- EPSS: 0.12% as of 2026-11-05; percentile 2.04%

- SSVC: exploitation none; automatable no; technical impact partial; source ADP: CISA-ADP

- Weaknesses: Not reported

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://git.kernel.org/stable/c/d34776c7fa1f2c510f1cdd14823aba701babb4ad (CNA: Linux)

- https://git.kernel.org/stable/c/03d4eafb0f3788239df63575951f6b4c97bbfda4 (CNA: Linux)

- https://git.kernel.org/stable/c/3c821bc0fbeaa27910a20d0b43c6008d099792af (CNA: Linux)

- https://git.kernel.org/stable/c/a04a760c06bb591989db659439efdf106f0bae76 (CNA: Linux)

- https://git.kernel.org/stable/c/0780f9333852971ca77d110019e3a66ce5a7b100 (CNA: Linux)

- https://git.kernel.org/stable/c/1dc6db047919ecd59493cd51248b37381bbabcbb (CNA: Linux)

- https://git.kernel.org/stable/c/898b89c90ff9496e64b9331040778cc4e1b28c9d (CNA: Linux)

- https://git.kernel.org/stable/c/b6552e0503973daf6f23bd6ed9273ef131ee364f (CNA: Linux)

## Provenance

- CNA: Linux: https://www.cve.org/CVERecord?id=CVE-2026-31510; retrieved 2026-11-05; source updated 2026-11-05

- FIRST EPSS: https://api.first.org/data/v1/epss?cve=CVE-2026-31510; retrieved 2026-11-05; source updated Not reported

Revision: fb6789135d93bac3460c1a551b6cd1456d3168f6e9556e66cb25df29527631f7

Canonical: https://y2.dev/cve/CVE-2026-31510

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.