# CVE-2026-99165: sctp: revalidate output stream after association connect wait

CVE-2026-99165 is fixed in linux on 1 platform, first by DEBIAN-CVE-2026-99165, released November 3, 2026. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2026-99165
- Priority: Routine
- CVSS: 5.3 (Moderate)
- EPSS: 0.0018
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Oct 28, 2026
- Vendor advisory: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-99165

## 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.

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | linux Debian 13.5 (trixie) | 6.12.115-2 | [DEBIAN-CVE-2026-99165](https://patchblox.com/security/data/fix/linux/debian-cve-2026-99165.md) | Nov 3, 2026 |
| Linux | linux Debian 14 | 7.2.13-1 | [DEBIAN-CVE-2026-99165](https://patchblox.com/security/data/fix/linux/debian-cve-2026-99165.md) | Nov 3, 2026 |

---

Data as of 2026-11-08T13:06:02Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
