Skip to main content

CVE-2024-36484: Vulnerability in Linux Linux

Medium
VulnerabilityCVE-2024-36484cvecve-2024-36484
Published: Fri Jun 21 2024 (06/21/2024, 10:18:09 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: net: relax socket state check at accept time. Christoph reported the following splat: WARNING: CPU: 1 PID: 772 at net/ipv4/af_inet.c:761 __inet_accept+0x1f4/0x4a0 Modules linked in: CPU: 1 PID: 772 Comm: syz-executor510 Not tainted 6.9.0-rc7-g7da7119fe22b #56 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-2.el7 04/01/2014 RIP: 0010:__inet_accept+0x1f4/0x4a0 net/ipv4/af_inet.c:759 Code: 04 38 84 c0 0f 85 87 00 00 00 41 c7 04 24 03 00 00 00 48 83 c4 10 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc cc cc cc e8 ec b7 da fd <0f> 0b e9 7f fe ff ff e8 e0 b7 da fd 0f 0b e9 fe fe ff ff 89 d9 80 RSP: 0018:ffffc90000c2fc58 EFLAGS: 00010293 RAX: ffffffff836bdd14 RBX: 0000000000000000 RCX: ffff888104668000 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: dffffc0000000000 R08: ffffffff836bdb89 R09: fffff52000185f64 R10: dffffc0000000000 R11: fffff52000185f64 R12: dffffc0000000000 R13: 1ffff92000185f98 R14: ffff88810754d880 R15: ffff8881007b7800 FS: 000000001c772880(0000) GS:ffff88811b280000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fb9fcf2e178 CR3: 00000001045d2002 CR4: 0000000000770ef0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 PKRU: 55555554 Call Trace: <TASK> inet_accept+0x138/0x1d0 net/ipv4/af_inet.c:786 do_accept+0x435/0x620 net/socket.c:1929 __sys_accept4_file net/socket.c:1969 [inline] __sys_accept4+0x9b/0x110 net/socket.c:1999 __do_sys_accept net/socket.c:2016 [inline] __se_sys_accept net/socket.c:2013 [inline] __x64_sys_accept+0x7d/0x90 net/socket.c:2013 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0x58/0x100 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x4315f9 Code: fd ff 48 81 c4 80 00 00 00 e9 f1 fe ff ff 0f 1f 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 ab b4 fd ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007ffdb26d9c78 EFLAGS: 00000246 ORIG_RAX: 000000000000002b RAX: ffffffffffffffda RBX: 0000000000400300 RCX: 00000000004315f9 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000004 RBP: 00000000006e1018 R08: 0000000000400300 R09: 0000000000400300 R10: 0000000000400300 R11: 0000000000000246 R12: 0000000000000000 R13: 000000000040cdf0 R14: 000000000040ce80 R15: 0000000000000055 </TASK> The reproducer invokes shutdown() before entering the listener status. After commit 94062790aedb ("tcp: defer shutdown(SEND_SHUTDOWN) for TCP_SYN_RECV sockets"), the above causes the child to reach the accept syscall in FIN_WAIT1 status. Eric noted we can relax the existing assertion in __inet_accept()

AI-Powered Analysis

AILast updated: 06/28/2025, 03:40:12 UTC

Technical Analysis

CVE-2024-36484 is a vulnerability identified in the Linux kernel's networking subsystem, specifically within the IPv4 socket handling code in the __inet_accept() function. The issue arises due to an overly strict socket state check during the accept() system call, which can lead to a kernel warning and potential system instability or crash (kernel panic). The root cause is related to the handling of TCP sockets that are in the FIN_WAIT1 state when accept() is called. This condition can occur when shutdown() is invoked on a socket before it fully transitions to the listening state, particularly after the commit 94062790aedb which deferred shutdown for TCP_SYN_RECV sockets. The vulnerability manifests as a kernel warning (splat) triggered by an assertion failure in __inet_accept(), indicating that the socket state does not meet expected conditions. While no direct exploit in the wild is reported, the vulnerability could be triggered by local processes invoking accept() on sockets in unexpected states, potentially leading to denial of service through kernel crashes or instability. The fix involves relaxing the assertion in __inet_accept() to accommodate the new TCP socket state transitions introduced by the deferred shutdown commit, thereby preventing the kernel panic. This vulnerability affects multiple Linux kernel versions as identified by specific commit hashes, including recent mainline and possibly some distribution kernels based on those commits. No CVSS score is assigned yet, and no known exploits have been observed in the wild.

Potential Impact

For European organizations, the primary impact of CVE-2024-36484 is the risk of denial of service (DoS) on Linux-based servers and infrastructure due to kernel panics triggered by malformed or unexpected socket state transitions during network connection handling. Many European enterprises, government agencies, and service providers rely heavily on Linux servers for critical applications, web services, and network infrastructure. A kernel crash can lead to service outages, data unavailability, and operational disruption. Although this vulnerability does not appear to allow privilege escalation or remote code execution, the resulting instability could be exploited by local attackers or malicious software to disrupt services. Systems running custom or legacy applications that manipulate socket states or use shutdown() and accept() calls in non-standard ways may be particularly susceptible. Additionally, embedded Linux devices and network appliances used in European industrial, telecommunications, and critical infrastructure sectors might be affected if they use vulnerable kernel versions. The absence of known exploits reduces immediate risk, but the vulnerability's presence in the Linux kernel codebase means that timely patching is essential to prevent potential DoS attacks.

Mitigation Recommendations

European organizations should prioritize updating their Linux kernel to versions that include the fix for CVE-2024-36484. Since the vulnerability is related to kernel code, applying official kernel patches or upgrading to the latest stable kernel releases that incorporate the relaxed socket state check is the most effective mitigation. For environments where immediate kernel upgrades are challenging, organizations should audit and monitor applications that perform socket shutdown and accept operations, ensuring they follow standard socket lifecycle practices to avoid triggering the vulnerable code path. Implementing kernel crash monitoring and automated reboot mechanisms can reduce downtime in case of unexpected panics. Additionally, organizations should review and limit local user permissions to prevent unprivileged users from invoking potentially harmful socket operations. Network segmentation and strict access controls can reduce the risk of local exploitation. Finally, maintaining up-to-date intrusion detection systems and monitoring kernel logs for warning messages related to __inet_accept() can help detect attempts to trigger this vulnerability.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-06-21T10:12:11.494Z
Cisa Enriched
true
Cvss Version
null
State
PUBLISHED

Threat ID: 682d9821c4522896dcbddd26

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

Last enriched: 6/28/2025, 3:40:12 AM

Last updated: 8/5/2025, 7:02:52 PM

Views: 10

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