CVE-2026-64548: bpf, sockmap: reject overflowing copy + len in bpf_msg_push_data()
Greg Kroah-Hartman <[email protected]> Mon, 27 Jul 2026 22:10:46 +0200
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026072737-CVE-2026-64548-892f@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: bpf, sockmap: reject overflowing copy + len in bpf_msg_push_data() When the scatterlist ring is full or nearly full, bpf_msg_push_data() enters a copy fallback path and computes copy + len for the page allocation size. Since len comes from BPF with arg3_type = ARG_ANYTHING and both are u32, a crafted len can wrap the sum to a small value, causing an undersized allocation followed by an out-of-bounds memcpy. BUG: unable to handle page fault for address: ffffed104089a402 Oops: Oops: 0000 [#1] SMP KASAN NOPTI Call Trace: __asan_memcpy (mm/kasan/shadow.c:105) bpf_msg_push_data (net/core/filter.c:2852 net/core/filter.c:2788) bpf_prog_9ed8b5711920a7d7+0x2e/0x36 sk_psock_msg_verdict (net/core/skmsg.c:934) tcp_bpf_sendmsg (net/ipv4/tcp_bpf.c:421 net/ipv4/tcp_bpf.c:584) __sys_sendto (net/socket.c:2206) do_syscall_64 (arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) Add an overflow check before the allocation. The Linux kernel CVE team has assigned CVE-2026-64548 to this issue. Affected and fixed versions =========================== Issue introduced in 4.20 with commit 6fff607e2f14bd7c63c06c464a6f93b8efbabe28 and fixed in 5.10.261 with commit f1644c9508d24f50dd9e8ebe8d3ba86e0996d2f5 Issue introduced in 4.20 with commit 6fff607e2f14bd7c63c06c464a6f93b8efbabe28 and fixed in 5.15.212 with commit a12b1575f9feabd91695a9e9d004862f7195fa25 Issue introduced in 4.20 with commit 6fff607e2f14bd7c63c06c464a6f93b8efbabe28 and fixed in 6.1.178 with commit ff39d0e3b4feeb65ca43c453d7c75fdf872ded0d Issue introduced in 4.20 with commit 6fff607e2f14bd7c63c06c464a6f93b8efbabe28 and fixed in 6.6.145 with commit 888706a76286c547bd035432602571e8024b5305 Issue introduced in 4.20 with commit 6fff607e2f14bd7c63c06c464a6f93b8efbabe28 and fixed in 6.12.97 with commit db77b6bb6e6edb79b10b4efcce346eec5582d588 Issue introduced in 4.20 with commit 6fff607e2f14bd7c63c06c464a6f93b8efbabe28 and fixed in 6.18.40 with commit 4e40056bb5c829f0423f0a6694a0477726d2147e Issue introduced in 4.20 with commit 6fff607e2f14bd7c63c06c464a6f93b8efbabe28 and fixed in 7.1.5 with commit bd004716ba75fed6d185795c85cdc92540ebeaab Issue introduced in 4.20 with commit 6fff607e2f14bd7c63c06c464a6f93b8efbabe28 and fixed in 7.2-rc1 with commit 0c0a8ed85349dae298712d79cb276acfeb794d82 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-64548 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/f1644c9508d24f50dd9e8ebe8d3ba86e0996d2f5 https://git.kernel.org/stable/c/a12b1575f9feabd91695a9e9d004862f7195fa25 https://git.kernel.org/stable/c/ff39d0e3b4feeb65ca43c453d7c75fdf872ded0d https://git.kernel.org/stable/c/888706a76286c547bd035432602571e8024b5305 https://git.kernel.org/stable/c/db77b6bb6e6edb79b10b4efcce346eec5582d588 https://git.kernel.org/stable/c/4e40056bb5c829f0423f0a6694a0477726d2147e https://git.kernel.org/stable/c/bd004716ba75fed6d185795c85cdc92540ebeaab https://git.kernel.org/stable/c/0c0a8ed85349dae298712d79cb276acfeb794d82