CVE-2024-26640
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
18/03/2024
Last modified:
10/03/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
tcp: add sanity checks to rx zerocopy<br />
<br />
TCP rx zerocopy intent is to map pages initially allocated<br />
from NIC drivers, not pages owned by a fs.<br />
<br />
This patch adds to can_map_frag() these additional checks:<br />
<br />
- Page must not be a compound one.<br />
- page->mapping must be NULL.<br />
<br />
This fixes the panic reported by ZhangPeng.<br />
<br />
syzbot was able to loopback packets built with sendfile(),<br />
mapping pages owned by an ext4 file to TCP rx zerocopy.<br />
<br />
r3 = socket$inet_tcp(0x2, 0x1, 0x0)<br />
mmap(&(0x7f0000ff9000/0x4000)=nil, 0x4000, 0x0, 0x12, r3, 0x0)<br />
r4 = socket$inet_tcp(0x2, 0x1, 0x0)<br />
bind$inet(r4, &(0x7f0000000000)={0x2, 0x4e24, @multicast1}, 0x10)<br />
connect$inet(r4, &(0x7f00000006c0)={0x2, 0x4e24, @empty}, 0x10)<br />
r5 = openat$dir(0xffffffffffffff9c, &(0x7f00000000c0)=&#39;./file0\x00&#39;,<br />
0x181e42, 0x0)<br />
fallocate(r5, 0x0, 0x0, 0x85b8)<br />
sendfile(r4, r5, 0x0, 0x8ba0)<br />
getsockopt$inet_tcp_TCP_ZEROCOPY_RECEIVE(r4, 0x6, 0x23,<br />
&(0x7f00000001c0)={&(0x7f0000ffb000/0x3000)=nil, 0x3000, 0x0, 0x0, 0x0,<br />
0x0, 0x0, 0x0, 0x0}, &(0x7f0000000440)=0x40)<br />
r6 = openat$dir(0xffffffffffffff9c, &(0x7f00000000c0)=&#39;./file0\x00&#39;,<br />
0x181e42, 0x0)
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
CPE | From | Up to |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.18 (including) | 5.10.210 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.149 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.77 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.16 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.7.4 (excluding) |
cpe:2.3:o:linux:linux_kernel:6.8:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.8:rc2:*:*:*:*:*:* | ||
cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/1b8adcc0e2c584fec778add7777fe28e20781e60
- https://git.kernel.org/stable/c/577e4432f3ac810049cb7e6b71f4d96ec7c6e894
- https://git.kernel.org/stable/c/718f446e60316bf606946f7f42367d691d21541e
- https://git.kernel.org/stable/c/b383d4ea272fe5795877506dcce5aad1f6330e5e
- https://git.kernel.org/stable/c/d15cc0f66884ef2bed28c7ccbb11c102aa3a0760
- https://git.kernel.org/stable/c/f48bf9a83b1666d934247cb58a9887d7b3127b6f
- https://git.kernel.org/stable/c/1b8adcc0e2c584fec778add7777fe28e20781e60
- https://git.kernel.org/stable/c/577e4432f3ac810049cb7e6b71f4d96ec7c6e894
- https://git.kernel.org/stable/c/718f446e60316bf606946f7f42367d691d21541e
- https://git.kernel.org/stable/c/b383d4ea272fe5795877506dcce5aad1f6330e5e
- https://git.kernel.org/stable/c/d15cc0f66884ef2bed28c7ccbb11c102aa3a0760
- https://git.kernel.org/stable/c/f48bf9a83b1666d934247cb58a9887d7b3127b6f
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html