CVE-2026-53004
NoneCVSS
—
EPSS
0.1%
Published
Jun 24, 2026
CISA due date
—
Cloudanix analysis
A flaw in Linux’s SCTP networking code can let a local program corrupt a small amount of its own memory, which may cause crashes or unreliable behavior until the kernel is updated.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Data Tampering
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
This is a Linux kernel SCTP socket option bounds-checking flaw in sctp_getsockopt_peer_auth_chunks(). The kernel validates the user-supplied optval length against only the number of peer AUTH chunks, but then writes the SCTP authchunks structure header plus the chunk list into the caller-provided userspace buffer. If an unprivileged local process creates or uses an SCTP association with AUTH enabled and calls the affected getsockopt path with a deliberately short buffer, the kernel can write up to 8 bytes beyond the length the caller declared. The overwrite lands in the calling process's own userspace memory, not kernel memory, so this is not a kernel privilege-escalation primitive by itself; the primary technical effect is silent corruption of adjacent userspace data and violation of the kernel/userspace API contract.
Why it matters to the business
The operational risk is generally low compared with kernel memory corruption flaws that allow privilege escalation or remote compromise. Exploitation requires local code execution and SCTP socket usage, and the overwrite affects the attacker's own process memory. However, systems running SCTP-enabled workloads could experience unexpected application crashes, data corruption inside affected processes, or instability if software unintentionally triggers the bug. Because this is a kernel flaw, remediation still depends on timely kernel updates from the operating system vendor and may require maintenance windows or reboots.
How an attack unfolds
An attacker first needs the ability to run code locally on a Linux system where the SCTP protocol stack and AUTH functionality are available. The attacker opens an SCTP socket, establishes or simulates an SCTP association with AUTH enabled, determines that one or more peer AUTH chunks are present, and then calls getsockopt for the peer AUTH chunks option while supplying an optval buffer whose declared length is equal to the number of chunks rather than the full structure size plus chunk list. The vulnerable kernel check accepts this undersized length. The kernel then copies the structure data and chunk bytes to userspace, writing beyond the declared buffer boundary into adjacent memory in the same process. Practical abuse is most likely limited to causing controlled self-corruption, crash behavior, or demonstrating API misuse through a local proof of concept rather than gaining elevated privileges.
How to fix it
Apply the Linux kernel update that includes the corrected SCTP length check in sctp_getsockopt_peer_auth_chunks(), where the required optval length is validated as sizeof(struct sctp_authchunks) plus the number of chunks. Use kernel packages from the relevant Linux distribution or vendor as soon as they are available, and reboot into the fixed kernel where required. If immediate patching is not possible, reduce exposure by disabling SCTP support where it is not required, preventing automatic loading of SCTP kernel modules where operationally safe, and restricting local code execution on systems that do not need untrusted users or workloads. Containerized environments should be assessed carefully because containers share the host kernel; updating container images alone does not remediate a host kernel vulnerability.
How to confirm the fix worked
Confirm the running kernel includes the vendor fix for the SCTP peer AUTH chunks bounds check, not merely that an updated package is installed. Validate by checking the active kernel version after reboot against vendor advisories or fixed kernel package changelogs. Where source validation is possible, confirm that sctp_getsockopt_peer_auth_chunks() rejects lengths smaller than sizeof(struct sctp_authchunks) + num_chunks. Operationally, verify whether SCTP is enabled or loaded by checking kernel module state and protocol availability. If SCTP is not required and mitigation was chosen, confirm SCTP socket creation fails or the SCTP module is blocked from loading. A controlled regression test can confirm that a short optval buffer now returns an error rather than allowing an out-of-bounds userspace write.
Typical attack path
- Obtain local code execution as an unprivileged user on a Linux system with SCTP support available.
- Create an SCTP socket and establish a loopback or peer association with SCTP AUTH enabled.
- Query or infer that the peer AUTH chunk list contains at least one chunk.
- Allocate a deliberately undersized userspace buffer for the SCTP peer AUTH chunks getsockopt call.
- Call the vulnerable getsockopt path with optlen set to the number of chunks instead of the full required structure length.
- Trigger the kernel copy_to_user operation that writes beyond the declared userspace buffer length.
- Observe or use the resulting corruption of adjacent memory inside the calling process.
How to detect it
There are no reliable remote indicators for this vulnerability, and successful triggering is unlikely to leave a distinctive system-wide artifact because the overwrite occurs in the calling process's own userspace memory. Detection should focus on local telemetry that shows suspicious or unusual SCTP socket activity, especially calls to getsockopt for SCTP AUTH chunk information followed by crashes, sanitizer findings, or abnormal process termination. Useful sources include auditd syscall telemetry if configured to capture socket-related syscalls, eBPF or tracing telemetry for SCTP socket options, kernel logs for SCTP-related warnings, application crash dumps, core files, and endpoint telemetry showing custom proof-of-concept binaries or fuzzers. Because standard Linux logs typically do not record getsockopt option names or optlen values, absence of logs is not evidence of non-exploitation. For forensic review, look for recently executed local binaries that create SCTP sockets, test AUTH options, or repeatedly crash while interacting with SCTP APIs.
What your security team should do
- Prioritize kernel patching through normal Linux vendor update channels, especially on systems that allow local users, run untrusted workloads, or use SCTP-based applications.
- Inventory systems with SCTP enabled or loaded and identify any business applications that depend on SCTP before applying mitigations that disable the protocol.
- If patching is delayed, disable or block SCTP module loading where SCTP is not operationally required.
- Reboot systems after installing fixed kernel packages and verify the active kernel is the patched version.
- Treat exploitation likelihood as low in the absence of public exploit maturity or KEV listing, but do not defer indefinitely because kernel fixes often require planned maintenance.
- Review crash reports and local workload behavior on SCTP-capable systems for unexplained application memory corruption or failures around SCTP socket option handling.
The record
In the Linux kernel, the following vulnerability has been resolved: sctp: fix OOB write to userspace in sctp_getsockopt_peer_auth_chunks sctp_getsockopt_peer_auth_chunks() checks that the caller's optval buffer is large enough for the peer AUTH chunk list with if (len < num_chunks) return -EINVAL; but then writes num_chunks bytes to p->gauth_chunks, which lives at offset offsetof(struct sctp_authchunks, gauth_chunks) == 8 inside optval. The check is missing the sizeof(struct sctp_authchunks) = 8-byte header. When the caller supplies len == num_chunks (for any num_chunks > 0) the test passes but copy_to_user() writes sizeof(struct sctp_authchunks) = 8 bytes past the declared buffer. The sibling function sctp_getsockopt_local_auth_chunks() at the next line already has the correct check: if (len < sizeof(struct sctp_authchunks) + num_chunks) return -EINVAL; Align the peer variant with its sibling. Reproducer confirms on v7.0-13-generic: an unprivileged userspace caller that opens a loopback SCTP association with AUTH enabled, queries num_chunks with a short optval, then issues the real getsockopt with len == num_chunks and sentinel bytes painted past the buffer observes those sentinel bytes overwritten with the peer's AUTH chunk type. The bytes written are under the peer's control but land in the caller's own userspace; this is not a kernel memory corruption, but it is a kernel-side contract violation that can silently corrupt adjacent userspace data.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|