CVE-2024-36927

ipv4: Fix uninit-value access in __ip_make_skb()

MEDIUM
4.7
CVSS Score
Published: May 30, 2024 at 03:29 PM UTC
Updated: October 15, 2026 at 01:18 AM UTC
4 products affected across 2 vendorsLinux KernelSIMATIC S7-1500 CPU 1518-4 Pn /dp MFP FirmwareSiplus S7-1500 CPU 1518-4 Pn /dp MFP Firmware

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
MEDIUM4.7
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: ipv4: Fix uninit-value access in __ip_make_skb() KMSAN reported uninit-value access in __ip_make_skb() [1]. __ip_make_skb() tests HDRINCL to know if the skb has icmphdr. However, HDRINCL can cause a race condition. If calling setsockopt(2) with IP_HDRINCL changes HDRINCL while __ip_make_skb() is running, the function will access icmphdr in the skb even if it is not included. This causes the issue reported by KMSAN. Check FLOWI_FLAG_KNOWN_NH on fl4->flowi4_flags instead of testing HDRINCL on the socket. Also, fl4->fl4_icmp_type and fl4->fl4_icmp_code are not initialized. These are union in struct flowi4 and are implicitly initialized by flowi4_init_output(), but we should not rely on specific union layout. Initialize these explicitly in raw_sendmsg(). [1] BUG: KMSAN: uninit-value in __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481 __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481 ip_finish_skb include/net/ip.h:243 [inline] ip_push_pending_frames+0x4c/0x5c0 net/ipv4/ip_output.c:1508 raw_sendmsg+0x2381/0x2690 net/ipv4/raw.c:654 inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg+0x274/0x3c0 net/socket.c:745 __sys_sendto+0x62c/0x7b0 net/socket.c:2191 __do_sys_sendto net/socket.c:2203 [inline] __se_sys_sendto net/socket.c:2199 [inline] __x64_sys_sendto+0x130/0x200 net/socket.c:2199 do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x6d/0x75 Uninit was created at: slab_post_alloc_hook mm/slub.c:3804 [inline] slab_alloc_node mm/slub.c:3845 [inline] kmem_cache_alloc_node+0x5f6/0xc50 mm/slub.c:3888 kmalloc_reserve+0x13c/0x4a0 net/core/skbuff.c:577 __alloc_skb+0x35a/0x7c0 net/core/skbuff.c:668 alloc_skb include/linux/skbuff.h:1318 [inline] __ip_append_data+0x49ab/0x68c0 net/ipv4/ip_output.c:1128 ip_append_data+0x1e7/0x260 net/ipv4/ip_output.c:1365 raw_sendmsg+0x22b1/0x2690 net/ipv4/raw.c:648 inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg+0x274/0x3c0 net/socket.c:745 __sys_sendto+0x62c/0x7b0 net/socket.c:2191 __do_sys_sendto net/socket.c:2203 [inline] __se_sys_sendto net/socket.c:2199 [inline] __x64_sys_sendto+0x130/0x200 net/socket.c:2199 do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x6d/0x75 CPU: 1 PID: 15709 Comm: syz-executor.7 Not tainted 6.8.0-11567-gb3603fcb79b1 #25 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-1.fc39 04/01/2014

Affected

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

4.14.315 ≤ v < 4.154.19.283 ≤ v < 4.205.10.180 ≤ v < 5.115.15.111 ≤ v < 5.165.4.243 ≤ v < 5.56.1.28 ≤ v < 6.26.2.15 ≤ v < 6.36.3.2 ≤ v < 6.6.316.7 ≤ v < 6.8.1022ea4374c319690c804706bda9dc42946d1556d27c468ec1af113f6ae94fb5378f65e6038bd16e732a5a13d556e4f804e5a447a08c70b172d6007074.14.3154.19.2835.10.1805.15.1115.4.243566785731c6dd41ef815196ddc36d1ae30a637636.1.286.2.156.3.26.96.9 rc16.9 rc26.9 rc36.9 rc46.9 rc56.9 rc699e5acae193e369b71217efe6f1dad42f3f188159e3c96aed8fe32907e0a4bca05aad457629a820ca54ec573d9b81b05d368f8e6edc1b3e49f688658dc4e3bb0710178c8d03fc43064e0a71fe7440cddfc60067260c20da8cddcf968bec47416f3e2cde2
Vendor states this is fixed in 20d3eb00ab81462d554ac6d09691b8d9aa5a5741 (fixed)
Vendor states this is fixed in 55bf541e018b76b3750cb6c6ea18c46e1ac5562e (fixed)
Vendor states this is fixed in 5db08343ddb1b239320612036c398e4e1bb52818 (fixed)
Vendor states this is fixed in 88c66f1879f322f11de34d37b2d3d87497afdcb6 (fixed)
Vendor states this is fixed in f5c603ad4e6fcf42f84053e882ebe20184bb309e (fixed)
Vendor states this is fixed in fc1092f51567277509563800a3c56732070b6aa4 (fixed)
Affected range stops below 4.15, so it looks safe — our inference, not a vendor statement
Affected range stops below 4.20, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 5.10.248 (unaffected)
Affected range stops below 5.11, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 5.15.198 (unaffected)
Affected range stops below 5.16, so it looks safe — our inference, not a vendor statement
Affected range stops below 5.5, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 6.1.140 (unaffected)
Affected range stops below 6.2, so it looks safe — our inference, not a vendor statement
Affected range stops below 6.3, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 6.4 (unaffected)
Vendor states this is fixed in 6.6.31 (unaffected)
Vendor states this is fixed in 6.8.10 (unaffected)
Vendor states this is fixed in 6.9 (unaffected)

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
HIGH
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-362CWE-908

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