Skip to main content

CVE-2024-43817: Vulnerability in Linux Linux

High
VulnerabilityCVE-2024-43817cvecve-2024-43817
Published: Sat Aug 17 2024 (08/17/2024, 09:21:39 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: net: missing check virtio Two missing check in virtio_net_hdr_to_skb() allowed syzbot to crash kernels again 1. After the skb_segment function the buffer may become non-linear (nr_frags != 0), but since the SKBTX_SHARED_FRAG flag is not set anywhere the __skb_linearize function will not be executed, then the buffer will remain non-linear. Then the condition (offset >= skb_headlen(skb)) becomes true, which causes WARN_ON_ONCE in skb_checksum_help. 2. The struct sk_buff and struct virtio_net_hdr members must be mathematically related. (gso_size) must be greater than (needed) otherwise WARN_ON_ONCE. (remainder) must be greater than (needed) otherwise WARN_ON_ONCE. (remainder) may be 0 if division is without remainder. offset+2 (4191) > skb_headlen() (1116) WARNING: CPU: 1 PID: 5084 at net/core/dev.c:3303 skb_checksum_help+0x5e2/0x740 net/core/dev.c:3303 Modules linked in: CPU: 1 PID: 5084 Comm: syz-executor336 Not tainted 6.7.0-rc3-syzkaller-00014-gdf60cee26a2e #0 Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 11/10/2023 RIP: 0010:skb_checksum_help+0x5e2/0x740 net/core/dev.c:3303 Code: 89 e8 83 e0 07 83 c0 03 38 d0 7c 08 84 d2 0f 85 52 01 00 00 44 89 e2 2b 53 74 4c 89 ee 48 c7 c7 40 57 e9 8b e8 af 8f dd f8 90 <0f> 0b 90 90 e9 87 fe ff ff e8 40 0f 6e f9 e9 4b fa ff ff 48 89 ef RSP: 0018:ffffc90003a9f338 EFLAGS: 00010286 RAX: 0000000000000000 RBX: ffff888025125780 RCX: ffffffff814db209 RDX: ffff888015393b80 RSI: ffffffff814db216 RDI: 0000000000000001 RBP: ffff8880251257f4 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000001 R12: 000000000000045c R13: 000000000000105f R14: ffff8880251257f0 R15: 000000000000105d FS: 0000555555c24380(0000) GS:ffff8880b9900000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000002000f000 CR3: 0000000023151000 CR4: 00000000003506f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> ip_do_fragment+0xa1b/0x18b0 net/ipv4/ip_output.c:777 ip_fragment.constprop.0+0x161/0x230 net/ipv4/ip_output.c:584 ip_finish_output_gso net/ipv4/ip_output.c:286 [inline] __ip_finish_output net/ipv4/ip_output.c:308 [inline] __ip_finish_output+0x49c/0x650 net/ipv4/ip_output.c:295 ip_finish_output+0x31/0x310 net/ipv4/ip_output.c:323 NF_HOOK_COND include/linux/netfilter.h:303 [inline] ip_output+0x13b/0x2a0 net/ipv4/ip_output.c:433 dst_output include/net/dst.h:451 [inline] ip_local_out+0xaf/0x1a0 net/ipv4/ip_output.c:129 iptunnel_xmit+0x5b4/0x9b0 net/ipv4/ip_tunnel_core.c:82 ipip6_tunnel_xmit net/ipv6/sit.c:1034 [inline] sit_tunnel_xmit+0xed2/0x28f0 net/ipv6/sit.c:1076 __netdev_start_xmit include/linux/netdevice.h:4940 [inline] netdev_start_xmit include/linux/netdevice.h:4954 [inline] xmit_one net/core/dev.c:3545 [inline] dev_hard_start_xmit+0x13d/0x6d0 net/core/dev.c:3561 __dev_queue_xmit+0x7c1/0x3d60 net/core/dev.c:4346 dev_queue_xmit include/linux/netdevice.h:3134 [inline] packet_xmit+0x257/0x380 net/packet/af_packet.c:276 packet_snd net/packet/af_packet.c:3087 [inline] packet_sendmsg+0x24ca/0x5240 net/packet/af_packet.c:3119 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg+0xd5/0x180 net/socket.c:745 __sys_sendto+0x255/0x340 net/socket.c:2190 __do_sys_sendto net/socket.c:2202 [inline] __se_sys_sendto net/socket.c:2198 [inline] __x64_sys_sendto+0xe0/0x1b0 net/socket.c:2198 do_syscall_x64 arch/x86/entry/common.c:51 [inline] do_syscall_64+0x40/0x110 arch/x86/entry/common.c:82 entry_SYSCALL_64_after_hwframe+0x63/0x6b Found by Linux Verification Center (linuxtesting.org) with Syzkaller

AI-Powered Analysis

AILast updated: 06/27/2025, 20:57:39 UTC

Technical Analysis

CVE-2024-43817 is a vulnerability identified in the Linux kernel's networking subsystem, specifically related to the virtio network driver implementation. The issue arises from missing validation checks within the virtio_net_hdr_to_skb() function, which processes network packets in virtualized environments using the virtio framework. Two critical missing checks can cause kernel crashes due to improper handling of socket buffers (sk_buff). First, after the skb_segment function call, the buffer may become non-linear (indicated by nr_frags != 0), but the SKBTX_SHARED_FRAG flag is not set, preventing the __skb_linearize function from executing. This leaves the buffer non-linear, causing the condition (offset >= skb_headlen(skb)) to be true, which triggers a WARN_ON_ONCE in skb_checksum_help, a kernel warning that can lead to a kernel panic or crash. Second, the mathematical relationship between struct sk_buff and struct virtio_net_hdr members is not properly validated. Specifically, the gso_size must be greater than the needed size, and the remainder must also be greater than or equal to the needed size (or zero if division is exact). Failure to meet these conditions results in WARN_ON_ONCE triggers. These flaws were discovered by the Linux Verification Center using Syzkaller, a kernel fuzzing tool, indicating that malformed or crafted network packets can exploit these missing checks to cause denial of service by crashing the kernel. The vulnerability affects multiple Linux kernel versions, including recent development releases, and is relevant in environments using virtio networking, such as virtual machines and cloud infrastructure. No known exploits are currently reported in the wild, and no CVSS score has been assigned yet.

Potential Impact

For European organizations, this vulnerability poses a significant risk primarily to cloud service providers, data centers, and enterprises relying on virtualized Linux environments with virtio networking. Exploitation can lead to kernel crashes, resulting in denial of service conditions that disrupt network communications and critical services. This can affect availability of hosted applications, virtual machines, and network functions. Organizations running Linux-based virtualized infrastructure, including public clouds, private clouds, and hybrid environments, are at risk. The vulnerability could be leveraged by attackers with network access to cause instability or outages, impacting business continuity and potentially leading to financial losses and reputational damage. While no direct evidence of remote code execution or privilege escalation is indicated, the denial of service impact alone is critical in high-availability environments. Additionally, the vulnerability could be exploited in multi-tenant cloud environments to disrupt co-located tenants or cloud infrastructure components. Given the widespread use of Linux in European IT infrastructure, the impact is broad, especially for sectors such as finance, telecommunications, government, and critical infrastructure that depend on stable virtualized networking.

Mitigation Recommendations

1. Immediate application of Linux kernel patches that address the missing checks in virtio_net_hdr_to_skb() is essential. Organizations should monitor Linux kernel updates and apply security patches promptly, especially for kernels used in virtualized environments. 2. For environments where immediate patching is not feasible, consider disabling or restricting the use of virtio network interfaces temporarily, or isolate vulnerable virtual machines to limit exposure. 3. Implement network segmentation and strict ingress filtering to reduce the risk of malicious or malformed packets reaching vulnerable virtual machines. 4. Employ kernel hardening techniques such as enabling kernel lockdown features and using security modules (e.g., SELinux, AppArmor) to limit the impact of kernel crashes. 5. Use monitoring and alerting tools to detect kernel warnings or crashes related to skb_checksum_help or virtio networking components. 6. Coordinate with cloud providers to ensure underlying infrastructure is patched and secure. 7. Conduct thorough testing of kernel updates in staging environments to validate stability before production deployment. 8. Maintain up-to-date backups and disaster recovery plans to mitigate potential downtime from denial of service incidents.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-08-17T09:11:59.270Z
Cisa Enriched
true
Cvss Version
null
State
PUBLISHED

Threat ID: 682d9820c4522896dcbdcd34

Added to database: 5/21/2025, 9:08:48 AM

Last enriched: 6/27/2025, 8:57:39 PM

Last updated: 8/15/2025, 12:05:46 AM

Views: 14

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats