CVE-2026-53004

sctp: fix OOB write to userspace in sctp_getsockopt_peer_auth_chunks

State
Published
Severity
Not scored
Published
Jun 24, 2026
Updated
Jun 24, 2026
Reserved
Jun 9, 2026

Read the record on cve.org

Description

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 65b07e5d0d09c77e98050b5f0146ead29e5add32 to before a132e199de69e2a45628aa8534df1bf5d44e1b6eAffected
  • 65b07e5d0d09c77e98050b5f0146ead29e5add32 to before 2b5a2c957c7769d40110f725cf23987fcef50d75Affected
  • 65b07e5d0d09c77e98050b5f0146ead29e5add32 to before d45c7e99caf915b0f6c716bd8ffe9d45b9685761Affected
  • 65b07e5d0d09c77e98050b5f0146ead29e5add32 to before d67fbc6dea5dbf7f46c618ebf65910a276078e20Affected
  • 65b07e5d0d09c77e98050b5f0146ead29e5add32 to before 6849b995cda88a677bf08a05765d1db7905974fcAffected
  • 65b07e5d0d09c77e98050b5f0146ead29e5add32 to before 70a089cc9590aa347a61e84434116ab74619e3c3Affected
  • 65b07e5d0d09c77e98050b5f0146ead29e5add32 to before 6bcf8fe4ef7967b22b814cbae9a57bbd3c853410Affected
  • 65b07e5d0d09c77e98050b5f0146ead29e5add32 to before 0cf004ffb61cd32d140531c3a84afe975f9fc7eaAffected
LinuxLinux
  • 2.6.24Affected
  • before 2.6.24Not affected
  • 5.10.258 through 5.10.*Not affected
  • 5.15.209 through 5.15.*Not affected
  • 6.1.175 through 6.1.*Not affected
  • 6.6.141 through 6.6.*Not affected
  • 6.12.91 through 6.12.*Not affected
  • 6.18.33 through 6.18.*Not affected
  • 7.0.10 through 7.0.*Not affected
  • 7.1 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.