{"id":"CVE-2026-74469","state":"PUBLISHED","title":"sctp: prevent peer transport count overflow","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: prevent peer transport count overflow\n\nsctp_assoc_add_peer() increments the association's 16-bit transport_count\nfor every new unique peer. Adding the 65,536th transport wraps the count to\nzero.\n\nSCTP sock_diag uses transport_count to reserve the INET_DIAG_PEERS payload,\nthen copies one sockaddr_storage for every entry in transport_addr_list.\nAfter the wrap, a diagnostic dump reserves an empty payload and writes\n8 MiB of peer addresses past the skb tail.\n\nReject a new unique peer when transport_count has reached U16_MAX. Perform\nthe check after the existing-peer lookup so a duplicate address continues\nto return its existing transport at the limit.","publishedAt":"2026-08-15T12:27:06.873Z","updatedAt":"2026-10-16T19:05:47.493Z","severity":{"score":8.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"b453e00da1211e997b82743d28af7714c59c05c8","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"dfea32dd76f390e3155177b0038cc47b01386198","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"80f48523a0fe42db2e7375dff4e38a25c117090a","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"546221b86ceeba0d8fec92d46a0604bb7b62be07","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"09e722030e8148ba4ed1e42c6b2ea57bda9f9895","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"4ba5bf7ed50f235ea4581de8e7a0002f4ed287b0","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"6201cd1d70f1670c5b31ac506e7ab2fa7b8e7f75","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"bd0e9289e2642f6a5c54faad304ce0f41e926d22","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sctp/associola.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.7","versionType":"semver"},{"version":"5.10.265","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.151","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.103","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.44","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.8","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sctp/associola.c"]}],"references":["https://git.kernel.org/stable/c/b453e00da1211e997b82743d28af7714c59c05c8","https://git.kernel.org/stable/c/dfea32dd76f390e3155177b0038cc47b01386198","https://git.kernel.org/stable/c/80f48523a0fe42db2e7375dff4e38a25c117090a","https://git.kernel.org/stable/c/546221b86ceeba0d8fec92d46a0604bb7b62be07","https://git.kernel.org/stable/c/09e722030e8148ba4ed1e42c6b2ea57bda9f9895","https://git.kernel.org/stable/c/4ba5bf7ed50f235ea4581de8e7a0002f4ed287b0","https://git.kernel.org/stable/c/6201cd1d70f1670c5b31ac506e7ab2fa7b8e7f75","https://git.kernel.org/stable/c/bd0e9289e2642f6a5c54faad304ce0f41e926d22"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/74xxx/CVE-2026-74469.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-74469","state":"PUBLISHED","datePublished":"2026-08-15T12:27:06.873Z","dateUpdated":"2026-10-16T19:05:47.493Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-15T05:44:03.902Z"},"containers":{"cna":{"title":"sctp: prevent peer transport count overflow","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: prevent peer transport count overflow\n\nsctp_assoc_add_peer() increments the association's 16-bit transport_count\nfor every new unique peer. Adding the 65,536th transport wraps the count to\nzero.\n\nSCTP sock_diag uses transport_count to reserve the INET_DIAG_PEERS payload,\nthen copies one sockaddr_storage for every entry in transport_addr_list.\nAfter the wrap, a diagnostic dump reserves an empty payload and writes\n8 MiB of peer addresses past the skb tail.\n\nReject a new unique peer when transport_count has reached U16_MAX. Perform\nthe check after the existing-peer lookup so a duplicate address continues\nto return its existing transport at the limit."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"b453e00da1211e997b82743d28af7714c59c05c8","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"dfea32dd76f390e3155177b0038cc47b01386198","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"80f48523a0fe42db2e7375dff4e38a25c117090a","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"546221b86ceeba0d8fec92d46a0604bb7b62be07","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"09e722030e8148ba4ed1e42c6b2ea57bda9f9895","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"4ba5bf7ed50f235ea4581de8e7a0002f4ed287b0","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"6201cd1d70f1670c5b31ac506e7ab2fa7b8e7f75","versionType":"git"},{"version":"8f840e47f190cbe61a96945c13e9551048d42cef","status":"affected","lessThan":"bd0e9289e2642f6a5c54faad304ce0f41e926d22","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sctp/associola.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.7","versionType":"semver"},{"version":"5.10.265","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.151","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.103","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.44","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.8","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sctp/associola.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/b453e00da1211e997b82743d28af7714c59c05c8"},{"url":"https://git.kernel.org/stable/c/dfea32dd76f390e3155177b0038cc47b01386198"},{"url":"https://git.kernel.org/stable/c/80f48523a0fe42db2e7375dff4e38a25c117090a"},{"url":"https://git.kernel.org/stable/c/546221b86ceeba0d8fec92d46a0604bb7b62be07"},{"url":"https://git.kernel.org/stable/c/09e722030e8148ba4ed1e42c6b2ea57bda9f9895"},{"url":"https://git.kernel.org/stable/c/4ba5bf7ed50f235ea4581de8e7a0002f4ed287b0"},{"url":"https://git.kernel.org/stable/c/6201cd1d70f1670c5b31ac506e7ab2fa7b8e7f75"},{"url":"https://git.kernel.org/stable/c/bd0e9289e2642f6a5c54faad304ce0f41e926d22"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - Remote SCTP peers add unique transports via INIT address parameters and ASCONF ADD_IP chunks processed in sctp_assoc_add_peer(); this is network ingress on SCTP servers (telecom, signaling gateways) before any local diagnostic action.\nAC:L - An attacker controlling an SCTP association can script 65536 unique peer addresses via connectx, repeated ASCONF ADD_IP, or INIT parameters; no race or victim-specific state is required beyond reaching the transport limit.\nPR:L - The heap overflow is triggered via NETLINK_SOCK_DIAG (ss/netlink), reachable by unprivileged users; SCTP socket creation and connectx need no capabilities beyond a normal local account (including user namespaces).\nUI:N - Exploitation requires no victim interaction; the attacker drives transport accumulation and issues the diagnostic dump themselves.\nS:U - Impact is kernel heap corruption within the same kernel security boundary; this is not a VM escape, sandbox breakout, or cross-authority scope change.\nC:H - When transport_count wraps to zero, inet_diag_msg_sctpaddrs_fill() reserves no space but iterates all 65536 transports, writing ~8 MiB past the skb tail and enabling adjacent kernel heap reads.\nI:H - The same diag path performs a massive out-of-bounds write of sockaddr_storage entries past the allocated skb buffer, corrupting adjacent kernel heap objects and enabling control-flow hijacking.\nA:H - Corrupting sk_buff heap metadata and adjacent allocations via an ~8 MiB out-of-bounds write can cause kernel oops, panic, or hang, meeting high availability impact."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-19T16:37:15.198Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"5.10.265"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"5.15.216"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"6.1.183"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"6.6.151"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"6.12.103"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"6.18.44"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"7.1.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-74469","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T18:57:13.238914Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-16T19:05:47.493Z"}}]}}}