{"api_version":"1","generated_at":"2026-11-15T00:14:17+00:00","cve":"CVE-2026-99165","urls":{"html":"https://cve.report/CVE-2026-99165","api":"https://cve.report/api/cve/CVE-2026-99165.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-99165","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-99165"},"summary":{"title":"sctp: revalidate output stream after association connect wait","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: revalidate output stream after association connect wait\n\nWhen message interleaving is enabled, the first send waits for association\nestablishment before building its data chunks.  The wait drops the socket\nlock, and handshake processing can reduce the output stream count to the\npeer-advertised inbound stream count.  sctp_stream_init() then frees the\nextension of every removed stream.\n\nThe sender resumes with the stream that it checked before the wait.  If the\npeer removed that stream, sctp_outq_tail() later dereferences its NULL\nextension.  Fatal-oops policies then panic the host.\n\nKASAN: null-ptr-deref in range [0x38-0x3f]\nRIP: sctp_outq_tail+0x49e/0xaa0\nCall Trace:\n sctp_primitive_SEND\n sctp_sendmsg_to_asoc\n sctp_sendmsg\n\nA range check alone is insufficient.  Stream reconfiguration can grow the\noutput count again while the lock is released without recreating extensions\nfreed by the earlier shrink.  The stream can then be in range while its\nextension remains NULL.  The send-buffer wait has the same issue.\n\nFactor the range and extension checks into a helper and repeat both after\neach send-path wait that drops the socket lock.  Once the lock is\nreacquired, the validation remains stable through data creation and\nqueueing.\n\nIf validation fails after the connect wait, the auto-created association is\nalready established.  Return ESRCH so the existing caller path keeps it\nunder state-machine ownership instead of freeing it directly, which would\nleave protocol, counter and socket state inconsistent.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-10-28 11:17:36","updated_at":"2026-10-30 13:21:50"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/84f741b7bb3974e674c9739055826aa040362bba","name":"https://git.kernel.org/stable/c/84f741b7bb3974e674c9739055826aa040362bba","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/77a63d1b813b08c4e5a948f5e04fbaca6176aa8f","name":"https://git.kernel.org/stable/c/77a63d1b813b08c4e5a948f5e04fbaca6176aa8f","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/504bdf55438ad4b1ecbfba0f7fe95e1933f7fb66","name":"https://git.kernel.org/stable/c/504bdf55438ad4b1ecbfba0f7fe95e1933f7fb66","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/fd56ac95ec31a05b66e8938debfa847f49c0e993","name":"https://git.kernel.org/stable/c/fd56ac95ec31a05b66e8938debfa847f49c0e993","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/b7ad72414c673ce1fa1f463e807cd4f34f8be9bf","name":"https://git.kernel.org/stable/c/b7ad72414c673ce1fa1f463e807cd4f34f8be9bf","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/994694a2d4611d7b76cf05ff401a92b1c0451e1f","name":"https://git.kernel.org/stable/c/994694a2d4611d7b76cf05ff401a92b1c0451e1f","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/26af2969b29cc5eb893a454fee2a36b39521a5bd","name":"https://git.kernel.org/stable/c/26af2969b29cc5eb893a454fee2a36b39521a5bd","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/b925652ba3a3ee11b2617e68de92379144b5b84b","name":"https://git.kernel.org/stable/c/b925652ba3a3ee11b2617e68de92379144b5b84b","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-99165","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99165","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 668c9beb9020d5834ee9e43c208190a07d2b1928 26af2969b29cc5eb893a454fee2a36b39521a5bd git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 668c9beb9020d5834ee9e43c208190a07d2b1928 b925652ba3a3ee11b2617e68de92379144b5b84b git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 668c9beb9020d5834ee9e43c208190a07d2b1928 504bdf55438ad4b1ecbfba0f7fe95e1933f7fb66 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 668c9beb9020d5834ee9e43c208190a07d2b1928 994694a2d4611d7b76cf05ff401a92b1c0451e1f git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 668c9beb9020d5834ee9e43c208190a07d2b1928 84f741b7bb3974e674c9739055826aa040362bba git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 668c9beb9020d5834ee9e43c208190a07d2b1928 77a63d1b813b08c4e5a948f5e04fbaca6176aa8f git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 668c9beb9020d5834ee9e43c208190a07d2b1928 fd56ac95ec31a05b66e8938debfa847f49c0e993 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 668c9beb9020d5834ee9e43c208190a07d2b1928 b7ad72414c673ce1fa1f463e807cd4f34f8be9bf git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4.16","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 4.16 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.10.273 5.10.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15.224 5.15.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.1.191 6.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.161 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.115 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.59 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.13 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"99165","cve":"CVE-2026-99165","epss":"0.001830000","percentile":"0.079250000","score_date":"2026-11-01","updated_at":"2026-11-02 00:05:55"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["net/sctp/socket.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"26af2969b29cc5eb893a454fee2a36b39521a5bd","status":"affected","version":"668c9beb9020d5834ee9e43c208190a07d2b1928","versionType":"git"},{"lessThan":"b925652ba3a3ee11b2617e68de92379144b5b84b","status":"affected","version":"668c9beb9020d5834ee9e43c208190a07d2b1928","versionType":"git"},{"lessThan":"504bdf55438ad4b1ecbfba0f7fe95e1933f7fb66","status":"affected","version":"668c9beb9020d5834ee9e43c208190a07d2b1928","versionType":"git"},{"lessThan":"994694a2d4611d7b76cf05ff401a92b1c0451e1f","status":"affected","version":"668c9beb9020d5834ee9e43c208190a07d2b1928","versionType":"git"},{"lessThan":"84f741b7bb3974e674c9739055826aa040362bba","status":"affected","version":"668c9beb9020d5834ee9e43c208190a07d2b1928","versionType":"git"},{"lessThan":"77a63d1b813b08c4e5a948f5e04fbaca6176aa8f","status":"affected","version":"668c9beb9020d5834ee9e43c208190a07d2b1928","versionType":"git"},{"lessThan":"fd56ac95ec31a05b66e8938debfa847f49c0e993","status":"affected","version":"668c9beb9020d5834ee9e43c208190a07d2b1928","versionType":"git"},{"lessThan":"b7ad72414c673ce1fa1f463e807cd4f34f8be9bf","status":"affected","version":"668c9beb9020d5834ee9e43c208190a07d2b1928","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["net/sctp/socket.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"4.16"},{"lessThan":"4.16","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"5.10.*","status":"unaffected","version":"5.10.273","versionType":"semver"},{"lessThanOrEqual":"5.15.*","status":"unaffected","version":"5.15.224","versionType":"semver"},{"lessThanOrEqual":"6.1.*","status":"unaffected","version":"6.1.191","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.161","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.115","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.59","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.13","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.273","versionStartIncluding":"4.16","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.224","versionStartIncluding":"4.16","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.1.191","versionStartIncluding":"4.16","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.161","versionStartIncluding":"4.16","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.115","versionStartIncluding":"4.16","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.59","versionStartIncluding":"4.16","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.13","versionStartIncluding":"4.16","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3","versionStartIncluding":"4.16","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: revalidate output stream after association connect wait\n\nWhen message interleaving is enabled, the first send waits for association\nestablishment before building its data chunks.  The wait drops the socket\nlock, and handshake processing can reduce the output stream count to the\npeer-advertised inbound stream count.  sctp_stream_init() then frees the\nextension of every removed stream.\n\nThe sender resumes with the stream that it checked before the wait.  If the\npeer removed that stream, sctp_outq_tail() later dereferences its NULL\nextension.  Fatal-oops policies then panic the host.\n\nKASAN: null-ptr-deref in range [0x38-0x3f]\nRIP: sctp_outq_tail+0x49e/0xaa0\nCall Trace:\n sctp_primitive_SEND\n sctp_sendmsg_to_asoc\n sctp_sendmsg\n\nA range check alone is insufficient.  Stream reconfiguration can grow the\noutput count again while the lock is released without recreating extensions\nfreed by the earlier shrink.  The stream can then be in range while its\nextension remains NULL.  The send-buffer wait has the same issue.\n\nFactor the range and extension checks into a helper and repeat both after\neach send-path wait that drops the socket lock.  Once the lock is\nreacquired, the validation remains stable through data creation and\nqueueing.\n\nIf validation fails after the connect wait, the auto-created association is\nalready established.  Return ESRCH so the existing caller path keeps it\nunder state-machine ownership instead of freeing it directly, which would\nleave protocol, counter and socket state inconsistent."}],"providerMetadata":{"dateUpdated":"2026-10-30T12:42:30.300Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/26af2969b29cc5eb893a454fee2a36b39521a5bd"},{"url":"https://git.kernel.org/stable/c/b925652ba3a3ee11b2617e68de92379144b5b84b"},{"url":"https://git.kernel.org/stable/c/504bdf55438ad4b1ecbfba0f7fe95e1933f7fb66"},{"url":"https://git.kernel.org/stable/c/994694a2d4611d7b76cf05ff401a92b1c0451e1f"},{"url":"https://git.kernel.org/stable/c/84f741b7bb3974e674c9739055826aa040362bba"},{"url":"https://git.kernel.org/stable/c/77a63d1b813b08c4e5a948f5e04fbaca6176aa8f"},{"url":"https://git.kernel.org/stable/c/fd56ac95ec31a05b66e8938debfa847f49c0e993"},{"url":"https://git.kernel.org/stable/c/b7ad72414c673ce1fa1f463e807cd4f34f8be9bf"}],"title":"sctp: revalidate output stream after association connect wait","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-99165","datePublished":"2026-10-28T10:35:17.366Z","dateReserved":"2026-09-25T10:25:14.398Z","dateUpdated":"2026-10-30T12:42:30.300Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-28 11:17:36","lastModifiedDate":"2026-10-30 13:21:50","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"99165","Ordinal":"1","Title":"sctp: revalidate output stream after association connect wait","CVE":"CVE-2026-99165","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"99165","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: revalidate output stream after association connect wait\n\nWhen message interleaving is enabled, the first send waits for association\nestablishment before building its data chunks.  The wait drops the socket\nlock, and handshake processing can reduce the output stream count to the\npeer-advertised inbound stream count.  sctp_stream_init() then frees the\nextension of every removed stream.\n\nThe sender resumes with the stream that it checked before the wait.  If the\npeer removed that stream, sctp_outq_tail() later dereferences its NULL\nextension.  Fatal-oops policies then panic the host.\n\nKASAN: null-ptr-deref in range [0x38-0x3f]\nRIP: sctp_outq_tail+0x49e/0xaa0\nCall Trace:\n sctp_primitive_SEND\n sctp_sendmsg_to_asoc\n sctp_sendmsg\n\nA range check alone is insufficient.  Stream reconfiguration can grow the\noutput count again while the lock is released without recreating extensions\nfreed by the earlier shrink.  The stream can then be in range while its\nextension remains NULL.  The send-buffer wait has the same issue.\n\nFactor the range and extension checks into a helper and repeat both after\neach send-path wait that drops the socket lock.  Once the lock is\nreacquired, the validation remains stable through data creation and\nqueueing.\n\nIf validation fails after the connect wait, the auto-created association is\nalready established.  Return ESRCH so the existing caller path keeps it\nunder state-machine ownership instead of freeing it directly, which would\nleave protocol, counter and socket state inconsistent.","Type":"Description","Title":"sctp: revalidate output stream after association connect wait"}]}}}