CVE-2026-98846 in Linuxinfo

Summary

by MITRE • 10/18/2026

In the Linux kernel, the following vulnerability has been resolved:

sctp: check RCV_SHUTDOWN after the sendmsg connect wait

sctp_wait_for_connect() drops the socket lock while it sleeps. An out-of-the-blue ABORT can then be processed from the socket backlog and unlink the association. If a concurrent shutdown(fd, SHUT_RD) sets RCV_SHUTDOWN, the waiter breaks with err == 0 before checking asoc->base.dead. Its final sctp_association_put() can then free the association, leaving sctp_sendmsg_to_asoc() to continue with a dangling pointer.

Check RCV_SHUTDOWN along with the wait error in sctp_sendmsg_to_asoc() before using the association again. The check only accesses the socket, so it needs no additional association reference. Return the existing -ESRCH so that sctp_sendmsg() skips freeing a new association that may already have been destroyed.

Keep sctp_wait_for_connect() unchanged to preserve its behavior for the connect() caller.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 10/18/2026

The vulnerability identified in the Linux kernel's Stream Control Transmission Protocol implementation involves a race condition within the socket handling logic, specifically during connection establishment and message transmission phases. The core issue stems from the interaction between sctp_wait_for_connect and concurrent shutdown operations. When an application calls connect on an SCTP socket, the kernel invokes sctp_wait_for_connect to block until the connection is established or fails. During this waiting period, the function releases the socket lock to allow other threads to proceed with processing incoming network packets. This design choice creates a window of vulnerability where external events can modify the state of the association while the original thread is suspended and no longer holding exclusive access to the socket structure.

An out-of-band ABORT packet received from the remote peer during this sleep interval triggers immediate processing in the socket backlog handler. This processing includes unlinking the association from the socket, effectively marking it as dead or removing its reference within the local context. Simultaneously, if a user-space application invokes shutdown with SHUT_RD on the file descriptor while the connect wait is still active, the RCV_SHUTDOWN flag is set in the socket structure. The critical flaw occurs when sctp_wait_for_connect returns due to this signal-induced interruption or error condition. It exits with an error code of zero, indicating success from a blocking perspective, but fails to verify whether the underlying association object has been destroyed by the concurrent ABORT processing.

This oversight leads directly to use-after-free conditions and potential kernel memory corruption. The calling function sctp_sendmsg_to_asoc proceeds under the assumption that the association remains valid because it received no error code from the wait operation. It then attempts to access or manipulate the association structure, which has already been freed by the ABORT handler. This results in a dangling pointer dereference, allowing an attacker who can trigger both the connect wait and subsequent shutdown operations to corrupt kernel memory. Such corruption can lead to system instability, denial of service through kernel panic, or potentially arbitrary code execution if specific heap layouts are exploited.

The remediation strategy focuses on adding explicit validation checks before accessing the association object after a blocking call returns. Specifically, sctp_sendmsg_to_asoc is modified to check for the RCV_SHUTDOWN flag in conjunction with any wait errors immediately upon return from sctp_wait_for_connect. This ensures that if the socket has been marked as receiving shutdown or if an error occurred during the wait, the function does not proceed to use the potentially freed association pointer. By returning -ESRCH when these conditions are met, the higher-level sendmsg routine is instructed to skip freeing any newly allocated associations and avoid further interaction with the invalid object. This approach preserves the existing behavior for legitimate connect callers while closing the race window that allowed access to destroyed resources.

From a classification perspective, this vulnerability aligns closely with CWE-416, Use After Free, as it involves accessing memory after it has been freed due to improper state management during concurrent operations. It also relates to CWE-362, Concurrent Execution using Shared Resource with Improper Synchronization, since the race condition arises from inadequate locking or synchronization between the socket lock release in sctp_wait_for_connect and the modification of association state by backlog handlers. In terms of attack vectors, this could be leveraged within ATT&CK techniques related to privilege escalation or defense evasion if an attacker can induce kernel crashes to bypass security controls or gain higher privileges through memory corruption exploits targeting SCTP stack implementations.

Mitigation for systems running affected Linux kernels involves applying the provided patch that introduces the RCV_SHUTDOWN check in sctp_sendmsg_to_asoc. System administrators should ensure that their distributions have released updates incorporating this fix, particularly those with active SCTP support enabled. For environments where SCTP is not required, disabling the protocol stack can reduce the attack surface entirely. Additionally, developers integrating SCTP into applications should be aware of these timing-sensitive race conditions and implement robust error handling for connect operations to avoid assumptions about association validity without explicit state verification. Regular security audits focusing on socket lifecycle management in network protocols are recommended to identify similar synchronization flaws before they can be exploited in production environments.

Responsible

Linux

Reservation

09/25/2026

Disclosure

10/18/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

low

Sources

Might our Artificial Intelligence support you?

Check our Alexa App!