CVE-2024-44935: Vulnerability in Linux Linux
In the Linux kernel, the following vulnerability has been resolved: sctp: Fix null-ptr-deref in reuseport_add_sock(). syzbot reported a null-ptr-deref while accessing sk2->sk_reuseport_cb in reuseport_add_sock(). [0] The repro first creates a listener with SO_REUSEPORT. Then, it creates another listener on the same port and concurrently closes the first listener. The second listen() calls reuseport_add_sock() with the first listener as sk2, where sk2->sk_reuseport_cb is not expected to be cleared concurrently, but the close() does clear it by reuseport_detach_sock(). The problem is SCTP does not properly synchronise reuseport_alloc(), reuseport_add_sock(), and reuseport_detach_sock(). The caller of reuseport_alloc() and reuseport_{add,detach}_sock() must provide synchronisation for sockets that are classified into the same reuseport group. Otherwise, such sockets form multiple identical reuseport groups, and all groups except one would be silently dead. 1. Two sockets call listen() concurrently 2. No socket in the same group found in sctp_ep_hashtable[] 3. Two sockets call reuseport_alloc() and form two reuseport groups 4. Only one group hit first in __sctp_rcv_lookup_endpoint() receives incoming packets Also, the reported null-ptr-deref could occur. TCP/UDP guarantees that would not happen by holding the hash bucket lock. Let's apply the locking strategy to __sctp_hash_endpoint() and __sctp_unhash_endpoint(). [0]: Oops: general protection fault, probably for non-canonical address 0xdffffc0000000002: 0000 [#1] PREEMPT SMP KASAN PTI KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017] CPU: 1 UID: 0 PID: 10230 Comm: syz-executor119 Not tainted 6.10.0-syzkaller-12585-g301927d2d2eb #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/27/2024 RIP: 0010:reuseport_add_sock+0x27e/0x5e0 net/core/sock_reuseport.c:350 Code: 00 0f b7 5d 00 bf 01 00 00 00 89 de e8 1b a4 ff f7 83 fb 01 0f 85 a3 01 00 00 e8 6d a0 ff f7 49 8d 7e 12 48 89 f8 48 c1 e8 03 <42> 0f b6 04 28 84 c0 0f 85 4b 02 00 00 41 0f b7 5e 12 49 8d 7e 14 RSP: 0018:ffffc9000b947c98 EFLAGS: 00010202 RAX: 0000000000000002 RBX: ffff8880252ddf98 RCX: ffff888079478000 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000012 RBP: 0000000000000001 R08: ffffffff8993e18d R09: 1ffffffff1fef385 R10: dffffc0000000000 R11: fffffbfff1fef386 R12: ffff8880252ddac0 R13: dffffc0000000000 R14: 0000000000000000 R15: 0000000000000000 FS: 00007f24e45b96c0(0000) GS:ffff8880b9300000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007ffcced5f7b8 CR3: 00000000241be000 CR4: 00000000003506f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> __sctp_hash_endpoint net/sctp/input.c:762 [inline] sctp_hash_endpoint+0x52a/0x600 net/sctp/input.c:790 sctp_listen_start net/sctp/socket.c:8570 [inline] sctp_inet_listen+0x767/0xa20 net/sctp/socket.c:8625 __sys_listen_socket net/socket.c:1883 [inline] __sys_listen+0x1b7/0x230 net/socket.c:1894 __do_sys_listen net/socket.c:1902 [inline] __se_sys_listen net/socket.c:1900 [inline] __x64_sys_listen+0x5a/0x70 net/socket.c:1900 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f24e46039b9 Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 91 1a 00 00 90 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 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f24e45b9228 EFLAGS: 00000246 ORIG_RAX: 0000000000000032 RAX: ffffffffffffffda RBX: 00007f24e468e428 RCX: 00007f24e46039b9 RDX: 00007f24e46039b9 RSI: 0000000000000003 RDI: 0000000000000004 RBP: 00007f24e468e420 R08: 00007f24e45b96c0 R09: 00007f24e45b96c0 R10: 00007f24e45b96c0 R11: 0000000000000246 R12: 00007f24e468e42c R13: ---truncated---
AI Analysis
Technical Summary
CVE-2024-44935 is a vulnerability identified in the Linux kernel's SCTP (Stream Control Transmission Protocol) implementation, specifically related to the handling of sockets with the SO_REUSEPORT option. The flaw arises due to improper synchronization in the functions reuseport_alloc(), reuseport_add_sock(), and reuseport_detach_sock(), which manage socket reuseport groups. When two sockets concurrently call listen() on the same port with SO_REUSEPORT, and one socket is closed while the other is being added, a race condition can occur. This leads to multiple identical reuseport groups being created, with only one group actively receiving incoming packets, while others become silently dead. More critically, this race condition can cause a null pointer dereference in reuseport_add_sock() when accessing sk2->sk_reuseport_cb, which may have been cleared concurrently by reuseport_detach_sock() during socket closure. This null pointer dereference can trigger a kernel crash (general protection fault), leading to a denial of service (DoS) condition. The vulnerability was discovered by syzbot, a kernel fuzzing tool, and is documented with detailed kernel stack traces. The issue is unique to SCTP because TCP and UDP implementations hold a hash bucket lock preventing this race, which SCTP lacked prior to this fix. The patch involves applying a locking strategy to __sctp_hash_endpoint() and __sctp_unhash_endpoint() to ensure proper synchronization. This vulnerability affects Linux kernel versions prior to the fix applied around kernel version 6.10.0 and can be triggered by local processes creating and closing SCTP sockets with SO_REUSEPORT concurrently. There are no known exploits in the wild yet, and no CVSS score has been assigned at the time of publication.
Potential Impact
For European organizations, the primary impact of CVE-2024-44935 is the potential for local denial of service on Linux systems using SCTP with SO_REUSEPORT enabled. This could disrupt critical services relying on SCTP, such as telecommunications infrastructure, signaling systems (e.g., SS7 over SCTP), and certain real-time applications. Organizations running Linux servers in telecom, financial services, or industrial control systems that utilize SCTP may experience unexpected kernel crashes, leading to service outages and operational disruption. Although exploitation requires local access and concurrent socket operations, the vulnerability could be leveraged by malicious insiders or compromised local accounts to degrade system availability. Given the widespread use of Linux in European data centers, cloud environments, and embedded systems, the vulnerability poses a tangible risk to service continuity. However, the lack of remote exploitability and the requirement for specific socket operations limit the scope of impact primarily to systems with SCTP usage and local threat actors. The vulnerability also highlights the importance of kernel-level synchronization in network protocol implementations, as improper locking can lead to stability issues affecting critical infrastructure.
Mitigation Recommendations
European organizations should prioritize updating their Linux kernels to versions that include the patch fixing CVE-2024-44935, specifically kernels 6.10.0 and later or backported security updates provided by their Linux distribution vendors. For environments where immediate patching is not feasible, administrators should audit and restrict local user permissions to prevent untrusted users from creating or manipulating SCTP sockets with SO_REUSEPORT. Monitoring kernel logs for null pointer dereference crashes related to reuseport_add_sock() can help detect attempted exploitation or triggering of this vulnerability. Additionally, organizations should review their use of SCTP and SO_REUSEPORT options, disabling SO_REUSEPORT on SCTP sockets if not strictly necessary to reduce attack surface. Telecom and industrial control system operators should coordinate with their Linux vendors and infrastructure providers to ensure timely deployment of patches and validate system stability post-update. Implementing kernel lockdown features and enhanced access controls can further reduce the risk of local exploitation. Finally, integrating this vulnerability into incident response plans and vulnerability management workflows will ensure rapid detection and remediation.
Affected Countries
Germany, France, United Kingdom, Netherlands, Italy, Spain, Sweden, Finland, Poland, Belgium
CVE-2024-44935: Vulnerability in Linux Linux
Description
In the Linux kernel, the following vulnerability has been resolved: sctp: Fix null-ptr-deref in reuseport_add_sock(). syzbot reported a null-ptr-deref while accessing sk2->sk_reuseport_cb in reuseport_add_sock(). [0] The repro first creates a listener with SO_REUSEPORT. Then, it creates another listener on the same port and concurrently closes the first listener. The second listen() calls reuseport_add_sock() with the first listener as sk2, where sk2->sk_reuseport_cb is not expected to be cleared concurrently, but the close() does clear it by reuseport_detach_sock(). The problem is SCTP does not properly synchronise reuseport_alloc(), reuseport_add_sock(), and reuseport_detach_sock(). The caller of reuseport_alloc() and reuseport_{add,detach}_sock() must provide synchronisation for sockets that are classified into the same reuseport group. Otherwise, such sockets form multiple identical reuseport groups, and all groups except one would be silently dead. 1. Two sockets call listen() concurrently 2. No socket in the same group found in sctp_ep_hashtable[] 3. Two sockets call reuseport_alloc() and form two reuseport groups 4. Only one group hit first in __sctp_rcv_lookup_endpoint() receives incoming packets Also, the reported null-ptr-deref could occur. TCP/UDP guarantees that would not happen by holding the hash bucket lock. Let's apply the locking strategy to __sctp_hash_endpoint() and __sctp_unhash_endpoint(). [0]: Oops: general protection fault, probably for non-canonical address 0xdffffc0000000002: 0000 [#1] PREEMPT SMP KASAN PTI KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017] CPU: 1 UID: 0 PID: 10230 Comm: syz-executor119 Not tainted 6.10.0-syzkaller-12585-g301927d2d2eb #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/27/2024 RIP: 0010:reuseport_add_sock+0x27e/0x5e0 net/core/sock_reuseport.c:350 Code: 00 0f b7 5d 00 bf 01 00 00 00 89 de e8 1b a4 ff f7 83 fb 01 0f 85 a3 01 00 00 e8 6d a0 ff f7 49 8d 7e 12 48 89 f8 48 c1 e8 03 <42> 0f b6 04 28 84 c0 0f 85 4b 02 00 00 41 0f b7 5e 12 49 8d 7e 14 RSP: 0018:ffffc9000b947c98 EFLAGS: 00010202 RAX: 0000000000000002 RBX: ffff8880252ddf98 RCX: ffff888079478000 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000012 RBP: 0000000000000001 R08: ffffffff8993e18d R09: 1ffffffff1fef385 R10: dffffc0000000000 R11: fffffbfff1fef386 R12: ffff8880252ddac0 R13: dffffc0000000000 R14: 0000000000000000 R15: 0000000000000000 FS: 00007f24e45b96c0(0000) GS:ffff8880b9300000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007ffcced5f7b8 CR3: 00000000241be000 CR4: 00000000003506f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> __sctp_hash_endpoint net/sctp/input.c:762 [inline] sctp_hash_endpoint+0x52a/0x600 net/sctp/input.c:790 sctp_listen_start net/sctp/socket.c:8570 [inline] sctp_inet_listen+0x767/0xa20 net/sctp/socket.c:8625 __sys_listen_socket net/socket.c:1883 [inline] __sys_listen+0x1b7/0x230 net/socket.c:1894 __do_sys_listen net/socket.c:1902 [inline] __se_sys_listen net/socket.c:1900 [inline] __x64_sys_listen+0x5a/0x70 net/socket.c:1900 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f24e46039b9 Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 91 1a 00 00 90 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 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f24e45b9228 EFLAGS: 00000246 ORIG_RAX: 0000000000000032 RAX: ffffffffffffffda RBX: 00007f24e468e428 RCX: 00007f24e46039b9 RDX: 00007f24e46039b9 RSI: 0000000000000003 RDI: 0000000000000004 RBP: 00007f24e468e420 R08: 00007f24e45b96c0 R09: 00007f24e45b96c0 R10: 00007f24e45b96c0 R11: 0000000000000246 R12: 00007f24e468e42c R13: ---truncated---
AI-Powered Analysis
Technical Analysis
CVE-2024-44935 is a vulnerability identified in the Linux kernel's SCTP (Stream Control Transmission Protocol) implementation, specifically related to the handling of sockets with the SO_REUSEPORT option. The flaw arises due to improper synchronization in the functions reuseport_alloc(), reuseport_add_sock(), and reuseport_detach_sock(), which manage socket reuseport groups. When two sockets concurrently call listen() on the same port with SO_REUSEPORT, and one socket is closed while the other is being added, a race condition can occur. This leads to multiple identical reuseport groups being created, with only one group actively receiving incoming packets, while others become silently dead. More critically, this race condition can cause a null pointer dereference in reuseport_add_sock() when accessing sk2->sk_reuseport_cb, which may have been cleared concurrently by reuseport_detach_sock() during socket closure. This null pointer dereference can trigger a kernel crash (general protection fault), leading to a denial of service (DoS) condition. The vulnerability was discovered by syzbot, a kernel fuzzing tool, and is documented with detailed kernel stack traces. The issue is unique to SCTP because TCP and UDP implementations hold a hash bucket lock preventing this race, which SCTP lacked prior to this fix. The patch involves applying a locking strategy to __sctp_hash_endpoint() and __sctp_unhash_endpoint() to ensure proper synchronization. This vulnerability affects Linux kernel versions prior to the fix applied around kernel version 6.10.0 and can be triggered by local processes creating and closing SCTP sockets with SO_REUSEPORT concurrently. There are no known exploits in the wild yet, and no CVSS score has been assigned at the time of publication.
Potential Impact
For European organizations, the primary impact of CVE-2024-44935 is the potential for local denial of service on Linux systems using SCTP with SO_REUSEPORT enabled. This could disrupt critical services relying on SCTP, such as telecommunications infrastructure, signaling systems (e.g., SS7 over SCTP), and certain real-time applications. Organizations running Linux servers in telecom, financial services, or industrial control systems that utilize SCTP may experience unexpected kernel crashes, leading to service outages and operational disruption. Although exploitation requires local access and concurrent socket operations, the vulnerability could be leveraged by malicious insiders or compromised local accounts to degrade system availability. Given the widespread use of Linux in European data centers, cloud environments, and embedded systems, the vulnerability poses a tangible risk to service continuity. However, the lack of remote exploitability and the requirement for specific socket operations limit the scope of impact primarily to systems with SCTP usage and local threat actors. The vulnerability also highlights the importance of kernel-level synchronization in network protocol implementations, as improper locking can lead to stability issues affecting critical infrastructure.
Mitigation Recommendations
European organizations should prioritize updating their Linux kernels to versions that include the patch fixing CVE-2024-44935, specifically kernels 6.10.0 and later or backported security updates provided by their Linux distribution vendors. For environments where immediate patching is not feasible, administrators should audit and restrict local user permissions to prevent untrusted users from creating or manipulating SCTP sockets with SO_REUSEPORT. Monitoring kernel logs for null pointer dereference crashes related to reuseport_add_sock() can help detect attempted exploitation or triggering of this vulnerability. Additionally, organizations should review their use of SCTP and SO_REUSEPORT options, disabling SO_REUSEPORT on SCTP sockets if not strictly necessary to reduce attack surface. Telecom and industrial control system operators should coordinate with their Linux vendors and infrastructure providers to ensure timely deployment of patches and validate system stability post-update. Implementing kernel lockdown features and enhanced access controls can further reduce the risk of local exploitation. Finally, integrating this vulnerability into incident response plans and vulnerability management workflows will ensure rapid detection and remediation.
For access to advanced analysis and higher rate limits, contact root@offseq.com
Technical Details
- Data Version
- 5.1
- Assigner Short Name
- Linux
- Date Reserved
- 2024-08-21T05:34:56.664Z
- Cisa Enriched
- true
- Cvss Version
- null
- State
- PUBLISHED
Threat ID: 682d9826c4522896dcbe0ca0
Added to database: 5/21/2025, 9:08:54 AM
Last enriched: 6/28/2025, 10:54:46 PM
Last updated: 8/14/2025, 5:59:04 PM
Views: 21
Related Threats
CVE-2025-9091: Hard-coded Credentials in Tenda AC20
LowCVE-2025-9090: Command Injection in Tenda AC20
MediumCVE-2025-9092: CWE-400 Uncontrolled Resource Consumption in Legion of the Bouncy Castle Inc. Bouncy Castle for Java - BC-FJA 2.1.0
LowCVE-2025-9089: Stack-based Buffer Overflow in Tenda AC20
HighCVE-2025-9088: Stack-based Buffer Overflow in Tenda AC20
HighActions
Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.
External Links
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.