CVE-2026-99165

sctp: revalidate output stream after association connect wait

State
Published
Severity
Not scored
Published
Oct 28, 2026
Updated
Oct 30, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

Description

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

sctp: revalidate output stream after association connect wait

When message interleaving is enabled, the first send waits for association establishment before building its data chunks. The wait drops the socket lock, and handshake processing can reduce the output stream count to the peer-advertised inbound stream count. sctp_stream_init() then frees the extension of every removed stream.

The sender resumes with the stream that it checked before the wait. If the peer removed that stream, sctp_outq_tail() later dereferences its NULL extension. Fatal-oops policies then panic the host.

KASAN: null-ptr-deref in range [0x38-0x3f] RIP: sctp_outq_tail+0x49e/0xaa0 Call Trace: sctp_primitive_SEND sctp_sendmsg_to_asoc sctp_sendmsg

A range check alone is insufficient. Stream reconfiguration can grow the output count again while the lock is released without recreating extensions freed by the earlier shrink. The stream can then be in range while its extension remains NULL. The send-buffer wait has the same issue.

Factor the range and extension checks into a helper and repeat both after each send-path wait that drops the socket lock. Once the lock is reacquired, the validation remains stable through data creation and queueing.

If validation fails after the connect wait, the auto-created association is already established. Return ESRCH so the existing caller path keeps it under state-machine ownership instead of freeing it directly, which would leave protocol, counter and socket state inconsistent.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 668c9beb9020d5834ee9e43c208190a07d2b1928 to before 26af2969b29cc5eb893a454fee2a36b39521a5bdAffected
  • 668c9beb9020d5834ee9e43c208190a07d2b1928 to before b925652ba3a3ee11b2617e68de92379144b5b84bAffected
  • 668c9beb9020d5834ee9e43c208190a07d2b1928 to before 504bdf55438ad4b1ecbfba0f7fe95e1933f7fb66Affected
  • 668c9beb9020d5834ee9e43c208190a07d2b1928 to before 994694a2d4611d7b76cf05ff401a92b1c0451e1fAffected
  • 668c9beb9020d5834ee9e43c208190a07d2b1928 to before 84f741b7bb3974e674c9739055826aa040362bbaAffected
  • 668c9beb9020d5834ee9e43c208190a07d2b1928 to before 77a63d1b813b08c4e5a948f5e04fbaca6176aa8fAffected
  • 668c9beb9020d5834ee9e43c208190a07d2b1928 to before fd56ac95ec31a05b66e8938debfa847f49c0e993Affected
  • 668c9beb9020d5834ee9e43c208190a07d2b1928 to before b7ad72414c673ce1fa1f463e807cd4f34f8be9bfAffected
LinuxLinux
  • 4.16Affected
  • before 4.16Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.224 through 5.15.*Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.161 through 6.6.*Not affected
  • 6.12.115 through 6.12.*Not affected
  • 6.18.59 through 6.18.*Not affected
  • 7.2.13 through 7.2.*Not affected
  • 7.3 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.