CVE-2023-53296: sctp: check send stream number after wait_for_sndbuf
In the Linux kernel, the following vulnerability has been resolved:
sctp: check send stream number after wait_for_sndbuf
This patch fixes a corner case where the asoc out stream count may change
after wait_for_sndbuf.
When the main thread in the client starts a connection, if its out stream
count is set to N while the in stream count in the server is set to N - 2,
another thread in the client keeps sending the msgs with stream number
N - 1, and waits for sndbuf before processing INIT_ACK.
However, after processing INIT_ACK, the out stream count in the client is
shrunk to N - 2, the same to the in stream count in the server. The crash
occurs when the thread waiting for sndbuf is awake and sends the msg in a
non-existing stream(N - 1), the call trace is as below:
KASAN: null-ptr-deref in range [0x0000000000000038-0x000000000000003f]
Call Trace:
<TASK>
sctp_cmd_send_msg net/sctp/sm_sideeffect.c:1114 [inline]
sctp_cmd_interpreter net/sctp/sm_sideeffect.c:1777 [inline]
sctp_side_effects net/sctp/sm_sideeffect.c:1199 [inline]
sctp_do_sm+0x197d/0x5310 net/sctp/sm_sideeffect.c:1170
sctp_primitive_SEND+0x9f/0xc0 net/sctp/primitive.c:163
sctp_sendmsg_to_asoc+0x10eb/0x1a30 net/sctp/socket.c:1868
sctp_sendmsg+0x8d4/0x1d90 net/sctp/socket.c:2026
inet_sendmsg+0x9d/0xe0 net/ipv4/af_inet.c:825
sock_sendmsg_nosec net/socket.c:722 [inline]
sock_sendmsg+0xde/0x190 net/socket.c:745
The fix is to add an unlikely check for the send stream number after the
thread wakes up from the wait_for_sndbuf.
Security readout for executives and security teams
Plain-English summary
CVE-2023-53296 is a Linux kernel SCTP flaw that can crash a vulnerable system under a specific local send-stream race condition. It affects availability, not confidentiality or integrity. The business risk is service disruption on Linux systems where local users or workloads can exercise SCTP behavior.
Executive priority
Treat as a routine but real availability-risk kernel patch. It is not currently supported by the provided sources as actively exploited, but systems hosting untrusted local workloads should be patched sooner because the impact is a crash.
Technical view
The bug is a null pointer dereference in Linux SCTP send handling after wait_for_sndbuf. The association outbound stream count can shrink after INIT_ACK processing, then a waiting sender resumes using a now-invalid stream number. Kernel stable commits add a post-wakeup stream-number check.
Likely exposure
Exposure is mainly Linux systems running affected kernel versions with SCTP available to local users, containers, or workloads. The CVSS vector is local, low complexity, low privilege, no user interaction, and high availability impact.
Exploitation context
The source bundle does not show active exploitation, and KEV is false. Evidence supports a local denial-of-service condition through a kernel crash, not remote compromise or data theft. Public sources provided do not include exploit maturity details.
Researcher notes
Focus validation on SCTP association stream-count handling around wait_for_sndbuf and INIT_ACK processing. The supplied trace points to sctp_cmd_send_msg and sctp_sendmsg paths. Do not assume remote reachability from the CVSS vector or supplied evidence.
Mitigation direction
Update to a vendor kernel containing the referenced stable SCTP fix.
Check Linux distribution advisories for backported fixed kernel packages.
Prioritize multi-user, container-host, and workload-dense Linux systems.
Limit untrusted local access while patching, where operationally feasible.
Track kernel versions against vendor guidance, not only upstream version numbers.
Validation and detection
Inventory Linux hosts and record running kernel versions.
Identify systems where SCTP is available or required by workloads.
Confirm vendor advisory status for CVE-2023-53296 on each distribution.
Verify installed kernels include the referenced stable fix or vendor backport.
Run regression tests for SCTP-dependent applications after kernel updates.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-476: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-476 · source CWE mapping
NULL Pointer Dereference
NULL Pointer Dereference represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.