HIGH 7.8

CVE-2026-53004: Linux SCTP Out-of-Bounds Write in Userspace Memory

A flaw in the Linux kernel's SCTP (Stream Control Transmission Protocol) networking code allows a local user to write data beyond the bounds of their own buffer in userspace memory. When an application queries authentication chunk information from an SCTP socket, the kernel fails to validate that the supplied buffer is large enough to hold both the header structure and the chunk list. This can cause the kernel to overwrite memory immediately following the caller's buffer with peer-controlled data, silently corrupting adjacent application data without triggering kernel memory corruption or obvious failures.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.8 HIGH · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weaknesses (CWE)
CWE-787
Affected products
1 configuration(s)
Published / Modified
2026-06-24 / 2026-07-14

NVD description (verbatim)

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.

8 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in sctp_getsockopt_peer_auth_chunks(), which retrieves a list of authentication chunks supported by a peer in an SCTP association. The function validates the caller's optval buffer size using 'if (len < num_chunks)' but neglects to account for the 8-byte sctp_authchunks header structure that precedes the actual chunk list data. When copy_to_user() executes, it writes the 8-byte header plus num_chunks bytes, resulting in an out-of-bounds write of 8 bytes past the declared buffer boundary. The sibling function sctp_getsockopt_local_auth_chunks() performs the correct validation: 'if (len < sizeof(struct sctp_authchunks) + num_chunks)', establishing the intended behavior. The fix aligns the peer variant with this correct boundary check.

Business impact

Local attackers can silently corrupt application memory without triggering crashes or obvious security alerts. This enables subtle data corruption attacks where an attacker with local access can manipulate SCTP authentication data to corrupt adjacent buffers in unprivileged user applications. In multi-tenant or containerized environments, this could allow one user to degrade or exploit the reliability of another user's applications. The subtle nature of the corruption—no kernel panic, no obvious error—increases the risk that such attacks go undetected during normal monitoring.

Affected systems

Any Linux system running the kernel with SCTP protocol support enabled and containing the vulnerable sctp_getsockopt_peer_auth_chunks() function. Affected are Linux kernel versions prior to the patch. The vulnerability requires local system access and an active SCTP association with AUTH enabled to trigger, limiting exposure to systems that actively use SCTP for inter-process or network communication.

Exploitability

Exploitation requires local user access to the system and the ability to create an SCTP socket with authentication enabled (typically over loopback). The attacker must query peer authentication chunks with a carefully crafted buffer size equal to num_chunks, allowing the kernel to write 8 extra bytes into the caller's userspace. The attack is deterministic and does not require privilege escalation, making it accessible to any local unprivileged user on a system with SCTP enabled. No network interaction or special capabilities are needed once local access is obtained.

Remediation

Apply the kernel patch that corrects the boundary validation in sctp_getsockopt_peer_auth_chunks() to match the check used in sctp_getsockopt_local_auth_chunks(): verify that len >= sizeof(struct sctp_authchunks) + num_chunks before proceeding. Verify against the vendor advisory for the specific patched kernel version applicable to your distribution and architecture.

Patch guidance

Monitor your Linux distribution's security advisories for a patched kernel version addressing CVE-2026-53004. The fix is a small validation logic change and should be available as a routine kernel update. Test the patched kernel in a staging environment to ensure SCTP functionality remains intact, particularly for applications relying on SCTP authentication. Prioritize deployment for systems actively using SCTP with AUTH enabled, or for multi-tenant environments where lateral user attacks are a concern.

Detection guidance

Monitor system logs for unusual SCTP getsockopt() calls with suspiciously small buffer sizes relative to returned chunk lists. Userspace application crashes or data corruption in memory adjacent to SCTP option buffers may indicate exploitation attempts. However, detection is challenging because the vulnerability causes silent data corruption without kernel errors. Behavioral monitoring of applications using SCTP auth features and inspection of local user activity on systems with SCTP enabled may help identify attack patterns. Consider disabling SCTP protocol support on systems that do not require it.

Why prioritize this

Although this is a local-only vulnerability requiring pre-existing system access, the HIGH CVSS score (7.8) reflects the complete compromise of confidentiality, integrity, and availability within the affected process context. The silent nature of the corruption makes it particularly insidious—attacks may go undetected. Prioritize patching for systems in multi-tenant environments, containerized deployments, or those running untrusted local code. Systems that do not use SCTP can be deprioritized or protected by disabling the protocol.

Risk score, explained

The CVSS 3.1 score of 7.8 (HIGH) reflects a local attack vector with low complexity and low privilege requirements, affecting user confidentiality, integrity, and availability. The vulnerability does not require user interaction and the attacker has full control over what data is written to the target buffer. Although limited to local access, the ability to silently corrupt userspace memory of other processes elevates the score to HIGH severity. The scope is unchanged (single system) because the impact is confined to the local attack context.

Frequently asked questions

Can this vulnerability be exploited over the network?

No. The attack requires local system access and an active SCTP socket association on the local machine. Remote attackers cannot trigger this vulnerability directly. However, in cloud or multi-tenant environments, a compromised account or container could exploit it against other local users.

Do I need to patch if I have SCTP disabled in the kernel?

No. If SCTP protocol support is compiled out or disabled at runtime, this vulnerability cannot be exploited. Verify your kernel configuration. However, patching is recommended as a general practice for systems that may have SCTP enabled in future updates.

Will this cause a kernel crash or panic?

No. This is a userspace memory corruption vulnerability, not a kernel memory corruption. The kernel continues to function normally. The risk lies in silent, undetected corruption of the attacker's own or adjacent application data, making this particularly dangerous because it may go unnoticed.

Which applications are affected?

Any local application that queries SCTP peer authentication chunks using getsockopt() with the SCTP_PEER_AUTH_CHUNKS option is potentially affected. This includes SCTP client and server applications that use authentication. If you are unsure whether your applications use SCTP, check their documentation or dependencies.

This analysis is based on the published vulnerability description and CVSS scoring data as of the publication date. Patch version numbers and specific affected kernel versions must be verified against official vendor advisories and security updates from your Linux distribution. No exploit code or proof-of-concept is provided. Organizations should consult their distribution's security documentation and test patches in staging environments before production deployment. This vulnerability requires local system access and is not remotely exploitable without prior compromise. Source: NVD (public-domain), retrieved 2026-07-31. Analysis generated by SEC.co (claude-haiku-4-5).