CVE-2024-26640

tcp: add sanity checks to rx zerocopy

MEDIUM
5.5
CVSS Score
Published: March 18, 2024 at 10:19 AM UTC
Updated: August 5, 2026 at 12:04 PM UTC
2 products affected across 2 vendorsLinux KernelDebian Linux

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: tcp: add sanity checks to rx zerocopy TCP rx zerocopy intent is to map pages initially allocated from NIC drivers, not pages owned by a fs. This patch adds to can_map_frag() these additional checks: - Page must not be a compound one. - page->mapping must be NULL. This fixes the panic reported by ZhangPeng. syzbot was able to loopback packets built with sendfile(), mapping pages owned by an ext4 file to TCP rx zerocopy. r3 = socket$inet_tcp(0x2, 0x1, 0x0) mmap(&(0x7f0000ff9000/0x4000)=nil, 0x4000, 0x0, 0x12, r3, 0x0) r4 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r4, &(0x7f0000000000)={0x2, 0x4e24, @multicast1}, 0x10) connect$inet(r4, &(0x7f00000006c0)={0x2, 0x4e24, @empty}, 0x10) r5 = openat$dir(0xffffffffffffff9c, &(0x7f00000000c0)='./file0\x00', 0x181e42, 0x0) fallocate(r5, 0x0, 0x0, 0x85b8) sendfile(r4, r5, 0x0, 0x8ba0) getsockopt$inet_tcp_TCP_ZEROCOPY_RECEIVE(r4, 0x6, 0x23, &(0x7f00000001c0)={&(0x7f0000ffb000/0x3000)=nil, 0x3000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &(0x7f0000000440)=0x40) r6 = openat$dir(0xffffffffffffff9c, &(0x7f00000000c0)='./file0\x00', 0x181e42, 0x0)

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

4.18 ≤ v < 5.10.2104.18 ≤ v < 5.15.1494.18 ≤ v < 6.1.774.18 ≤ v < 6.6.164.18 ≤ v < 6.7.44.18 ≤ v < 6.85.11 ≤ v < 5.15.1495.16 ≤ v < 6.1.776.2 ≤ v < 6.6.166.7 ≤ v < 6.7.46.8 rc16.8 rc293ab6cc69162775201587cc9da00d5016dc890e2
Vendor states this is fixed in 1b8adcc0e2c584fec778add7777fe28e20781e60 (fixed)
Vendor states this is fixed in 577e4432f3ac810049cb7e6b71f4d96ec7c6e894 (fixed)
Vendor states this is fixed in 718f446e60316bf606946f7f42367d691d21541e (fixed)
Vendor states this is fixed in b383d4ea272fe5795877506dcce5aad1f6330e5e (fixed)
Vendor states this is fixed in d15cc0f66884ef2bed28c7ccbb11c102aa3a0760 (fixed)
Vendor states this is fixed in f48bf9a83b1666d934247cb58a9887d7b3127b6f (fixed)
Vendor states this is fixed in 4.18 (unaffected)
Vendor states this is fixed in 5.10.210 (unaffected)
Vendor states this is fixed in 5.15.149 (unaffected)
Vendor states this is fixed in 6.1.77 (unaffected)
Vendor states this is fixed in 6.6.16 (unaffected)
Vendor states this is fixed in 6.7.4 (unaffected)
Vendor states this is fixed in 6.8 (unaffected)

References (7)

Mailing ListPatch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/1b8adcc0e2c584fec778add7777fe28e20781e60
Mailing ListPatch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/577e4432f3ac810049cb7e6b71f4d96ec7c6e894
Mailing ListPatch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/718f446e60316bf606946f7f42367d691d21541e
Mailing ListPatch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/b383d4ea272fe5795877506dcce5aad1f6330e5e
Mailing ListPatch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/d15cc0f66884ef2bed28c7ccbb11c102aa3a0760
Mailing ListPatch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/f48bf9a83b1666d934247cb58a9887d7b3127b6f
Mailing List
Source: af854a3a-2127-422b-91ae-364da2661108
https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
NVD-CWE-noinfo

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card