CVE-2026-72021: ipvs: use parsed transport offset in SCTP state lookup
Greg Kroah-Hartman <[email protected]>
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026081510-CVE-2026-72021-bee2@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: ipvs: use parsed transport offset in SCTP state lookup set_sctp_state() reads the SCTP chunk header again in order to drive the IPVS SCTP state table. For IPv6 it computes the offset with sizeof(struct ipv6hdr), while the surrounding IPVS code uses iph.len from ip_vs_fill_iph_skb(), where ipv6_find_hdr() has already skipped extension headers and found the real transport header. This makes the state machine read from the wrong offset for IPv6 SCTP packets that carry extension headers. For example, an INIT packet with an 8-byte destination options header can be scheduled correctly by sctp_conn_schedule(), but set_sctp_state() reads the first byte of the SCTP verification tag as a DATA chunk type. The connection then moves from NONE to ESTABLISHED instead of INIT1, gets the longer established timeout, and updates the active/inactive destination counters incorrectly. This happens even though the SCTP handshake has not completed. Use the parsed transport offset passed down from ip_vs_set_state() for the SCTP chunk-header lookup. For IPv4 and IPv6 packets without extension headers this preserves the existing offset. The Linux kernel CVE team has assigned CVE-2026-72021 to this issue. Affected and fixed versions =========================== Issue introduced in 2.6.34 with commit 2906f66a5682e5670a5eefe991843689b8d8563f and fixed in 5.10.261 with commit d2b8b1557ec07ea1bb5dddbceaf4dfe63d388e27 Issue introduced in 2.6.34 with commit 2906f66a5682e5670a5eefe991843689b8d8563f and fixed in 5.15.212 with commit 9f94573ab962a9e81954b755da016fa3cd2f5039 Issue introduced in 2.6.34 with commit 2906f66a5682e5670a5eefe991843689b8d8563f and fixed in 6.1.178 with commit 290e9e8389b556efc603522e28bd1543846aa336 Issue introduced in 2.6.34 with commit 2906f66a5682e5670a5eefe991843689b8d8563f and fixed in 6.6.145 with commit 9cb5ac594ca76d3a71803b23b74c835b0721e628 Issue introduced in 2.6.34 with commit 2906f66a5682e5670a5eefe991843689b8d8563f and fixed in 6.12.97 with commit a4a2d2e483d79cc2ad3a170674cf159644acf22b Issue introduced in 2.6.34 with commit 2906f66a5682e5670a5eefe991843689b8d8563f and fixed in 6.18.40 with commit 247d055504dcc852e539b9f7f30d19f9741474bf Issue introduced in 2.6.34 with commit 2906f66a5682e5670a5eefe991843689b8d8563f and fixed in 7.1.5 with commit e5d0bb8871668f20de8f3c94b5ae3f372346bc6e Issue introduced in 2.6.34 with commit 2906f66a5682e5670a5eefe991843689b8d8563f and fixed in 7.2-rc3 with commit 2f75c0faa3361b28e36cc0512b3299e163e25789 Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-72021 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: net/netfilter/ipvs/ip_vs_proto_sctp.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/d2b8b1557ec07ea1bb5dddbceaf4dfe63d388e27 https://git.kernel.org/stable/c/9f94573ab962a9e81954b755da016fa3cd2f5039 https://git.kernel.org/stable/c/290e9e8389b556efc603522e28bd1543846aa336 https://git.kernel.org/stable/c/9cb5ac594ca76d3a71803b23b74c835b0721e628 https://git.kernel.org/stable/c/a4a2d2e483d79cc2ad3a170674cf159644acf22b https://git.kernel.org/stable/c/247d055504dcc852e539b9f7f30d19f9741474bf https://git.kernel.org/stable/c/e5d0bb8871668f20de8f3c94b5ae3f372346bc6e https://git.kernel.org/stable/c/2f75c0faa3361b28e36cc0512b3299e163e25789