* CVE-2026-74256: bpf, sockmap: fix integer overflow in bpf_msg_pop_data() bounds check
@ 2026-08-15 6:09 Greg Kroah-Hartman
0 siblings, 0 replies; only message in thread
From: Greg Kroah-Hartman @ 2026-08-15 6:09 UTC (permalink / raw)
To: linux-cve-announce; +Cc: Greg Kroah-Hartman
From: Greg Kroah-Hartman <gregkh@kernel.org>
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
bpf, sockmap: fix integer overflow in bpf_msg_pop_data() bounds check
start and len are u32, so
u64 last = start + len;
evaluates start + len in 32-bit and wraps before storing it in last.
The bounds check
if (start >= offset + l || last > msg->sg.size)
return -EINVAL;
can then be passed with an out-of-range start/len, after which the pop
loop runs off the end of the scatterlist and sk_msg_shift_left() calls
put_page() on the empty msg->sg.end slot:
Oops: general protection fault, probably for non-canonical address
0xdffffc0000000001: 0000 [#1] SMP KASAN PTI
KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f]
RIP: 0010:sk_msg_shift_left net/core/filter.c:2957 [inline]
RIP: 0010:____bpf_msg_pop_data net/core/filter.c:3103 [inline]
RIP: 0010:bpf_msg_pop_data+0x753/0x1a10 net/core/filter.c:2984
Call Trace:
<TASK>
bpf_prog_4cc92c278f4d5d56+0x1b1/0x1e8
bpf_prog_run_pin_on_cpu+0x107/0x320 include/linux/filter.h:746
sk_psock_msg_verdict+0x357/0x7f0 net/core/skmsg.c:934
tcp_bpf_send_verdict net/ipv4/tcp_bpf.c:420 [inline]
tcp_bpf_sendmsg+0x766/0x1ae0 net/ipv4/tcp_bpf.c:583
__sock_sendmsg+0x153/0x1c0 net/socket.c:802
__sys_sendto+0x326/0x430 net/socket.c:2265
__x64_sys_sendto+0xe3/0x100 net/socket.c:2268
do_syscall_64+0x14c/0x480
entry_SYSCALL_64_after_hwframe+0x77/0x7f
</TASK>
Widen the addition with a (u64) cast so the bound is evaluated in
64-bit and a len near U32_MAX no longer wraps below msg->sg.size.
While here, change pop from int to u32. It counts bytes against the
unsigned scatterlist lengths and can never be negative, so the signed
type only invites sign-confusion in the pop loop.
The Linux kernel CVE team has assigned CVE-2026-74256 to this issue.
Affected and fixed versions
===========================
Issue introduced in 5.0 with commit 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 and fixed in 5.10.261 with commit 9ef44ed6fb0c1db01cfcc3de432a33e719713eb5
Issue introduced in 5.0 with commit 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 and fixed in 5.15.212 with commit d693c5ed67dabe1ccbf8dcea93075bdc9ffd4ca0
Issue introduced in 5.0 with commit 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 and fixed in 6.1.178 with commit ba5cc05dae8fce237d191c7ea96b1107a791e548
Issue introduced in 5.0 with commit 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 and fixed in 6.6.145 with commit c05a0ec1cdced622a1a0c7d85679fe02f31033ec
Issue introduced in 5.0 with commit 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 and fixed in 6.12.97 with commit 17eb9832a10db2f7a80cb429ca2bc5038445a943
Issue introduced in 5.0 with commit 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 and fixed in 6.18.40 with commit fe09dd288722f1c749b7506c0b3e7841a7d85027
Issue introduced in 5.0 with commit 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 and fixed in 7.1.5 with commit e09f7bd7273928b4089e6b71f8e992f2b356ca1b
Issue introduced in 5.0 with commit 7246d8ed4dcce23f7509949a77be15fa9f0e3d28 and fixed in 7.2-rc1 with commit a48802fb2cd2d1e23651989f8ff4d15e9d5dad54
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2026-74256
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
net/core/filter.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/9ef44ed6fb0c1db01cfcc3de432a33e719713eb5
https://git.kernel.org/stable/c/d693c5ed67dabe1ccbf8dcea93075bdc9ffd4ca0
https://git.kernel.org/stable/c/ba5cc05dae8fce237d191c7ea96b1107a791e548
https://git.kernel.org/stable/c/c05a0ec1cdced622a1a0c7d85679fe02f31033ec
https://git.kernel.org/stable/c/17eb9832a10db2f7a80cb429ca2bc5038445a943
https://git.kernel.org/stable/c/fe09dd288722f1c749b7506c0b3e7841a7d85027
https://git.kernel.org/stable/c/e09f7bd7273928b4089e6b71f8e992f2b356ca1b
https://git.kernel.org/stable/c/a48802fb2cd2d1e23651989f8ff4d15e9d5dad54
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-15 6:33 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-15 6:09 CVE-2026-74256: bpf, sockmap: fix integer overflow in bpf_msg_pop_data() bounds check Greg Kroah-Hartman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.