CVE-2026-98384 PUBLISHED

bpf: Fix out-of-bounds read of sk_protocol in bpf_sock_destroy()

Assigner: Linux
Reserved: 25.09.2026 Published: 09.10.2026 Updated: 09.10.2026

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

bpf: Fix out-of-bounds read of sk_protocol in bpf_sock_destroy()

sk_protocol lives in struct sock, not in struct sock_common. A timewait or request sock handed to bpf_sock_destroy() by the tcp iterator is neither, so reading sk->sk_protocol runs past the object:

================================================================== BUG: KASAN: slab-out-of-bounds in bpf_sock_destroy+0xc7/0xe0 Read of size 2 at addr ffff8881047d11b4 by task test_progs/428

Tainted: [W]=WARN Call Trace: <TASK> dump_stack_lvl+0x91/0xf0 print_report+0xd1/0x630 kasan_report+0xf3/0x130 __asan_report_load2_noabort+0x14/0x30 bpf_sock_destroy+0xc7/0xe0 bpf_prog_c3dd61f9d9cd9f37_iter_tcp6_timewait+0x9f/0xb7 bpf_iter_run_prog+0x538/0xde0 bpf_iter_tcp_seq_show+0x26b/0x4b0 bpf_seq_read+0x424/0x1210 vfs_read+0x197/0xe40 ksys_read+0x119/0x240 __x64_sys_read+0x72/0xc0 x64_sys_call+0x647/0x27e0 do_syscall_64+0xe5/0x610 entry_SYSCALL_64_after_hwframe+0x76/0x7e

Only check sk_protocol on full socks. tcp_abort() already knows how to deal with TIME_WAIT and NEW_SYN_RECV socks. Also fix the comment, it never matched the code.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 4ddbcb886268af8d12a23e6640b39d1d9c652b1b to 5b4eb82475ae17d55974235c09e97044829426a8 (excl.)
  • affected from 4ddbcb886268af8d12a23e6640b39d1d9c652b1b to a9651704c6fd64590b5ad4fbe7c3768accf95993 (excl.)
  • affected from 4ddbcb886268af8d12a23e6640b39d1d9c652b1b to 91a482a81eabddebf5430cbbdf12027e1a91b767 (excl.)
  • affected from 4ddbcb886268af8d12a23e6640b39d1d9c652b1b to 2534a5e5d360c2b10203cfa80f4ab9d021e48f2f (excl.)
  • affected from 4ddbcb886268af8d12a23e6640b39d1d9c652b1b to 01b245ba016d44861690594e10f67e026ce8552f (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 6.5 is affected
  • unaffected from 0 to 6.5 (excl.)
  • unaffected from 6.6.158 to 6.6.* (incl.)
  • unaffected from 6.12.112 to 6.12.* (incl.)
  • unaffected from 6.18.55 to 6.18.* (incl.)
  • unaffected from 7.2.9 to 7.2.* (incl.)
  • unaffected from 7.3-rc5 to * (incl.)

References