CVE-2026-72021
ipvs: use parsed transport offset in SCTP state lookup
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.
INFO
Published Date :
Aug. 15, 2026, 6:21 a.m.
Last Modified :
Aug. 17, 2026, 6:17 a.m.
Remotely Exploit :
Yes !
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS 3.1 | HIGH | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
Solution
- Apply the Linux kernel patch for the ipvs module.
- Ensure transport offset is correctly parsed for SCTP state lookups.
- Verify SCTP state transitions after applying the fix.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-72021.
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-72021 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-72021
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-72021 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-72021 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Aug. 17, 2026
Action Type Old Value New Value Added CVSS V3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H Changed Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': 'd2b8b1557ec07ea1bb5dddbceaf4dfe63d388e27', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '9f94573ab962a9e81954b755da016fa3cd2f5039', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '290e9e8389b556efc603522e28bd1543846aa336', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '9cb5ac594ca76d3a71803b23b74c835b0721e628', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': 'a4a2d2e483d79cc2ad3a170674cf159644acf22b', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '247d055504dcc852e539b9f7f30d19f9741474bf', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': 'e5d0bb8871668f20de8f3c94b5ae3f372346bc6e', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '2f75c0faa3361b28e36cc0512b3299e163e25789', 'versionType': 'git'}], 'programFiles': ['net/netfilter/ipvs/ip_vs_proto_sctp.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '2.6.34'}, {'status': 'unaffected', 'version': '0', 'lessThan': '2.6.34', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.261', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.212', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.97', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.40', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc3', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['net/netfilter/ipvs/ip_vs_proto_sctp.c'], 'defaultStatus': 'affected'}] [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': 'd2b8b1557ec07ea1bb5dddbceaf4dfe63d388e27', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '9f94573ab962a9e81954b755da016fa3cd2f5039', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '290e9e8389b556efc603522e28bd1543846aa336', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '9cb5ac594ca76d3a71803b23b74c835b0721e628', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': 'a4a2d2e483d79cc2ad3a170674cf159644acf22b', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '247d055504dcc852e539b9f7f30d19f9741474bf', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': 'e5d0bb8871668f20de8f3c94b5ae3f372346bc6e', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '2f75c0faa3361b28e36cc0512b3299e163e25789', 'versionType': 'git'}], 'programFiles': ['net/netfilter/ipvs/ip_vs_proto_sctp.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '2.6.34'}, {'status': 'unaffected', 'version': '0', 'lessThan': '2.6.34', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.261', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.212', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.97', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.40', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['net/netfilter/ipvs/ip_vs_proto_sctp.c'], 'defaultStatus': 'affected'}] -
New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Aug. 15, 2026
Action Type Old Value New Value Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': 'd2b8b1557ec07ea1bb5dddbceaf4dfe63d388e27', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '9f94573ab962a9e81954b755da016fa3cd2f5039', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '290e9e8389b556efc603522e28bd1543846aa336', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '9cb5ac594ca76d3a71803b23b74c835b0721e628', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': 'a4a2d2e483d79cc2ad3a170674cf159644acf22b', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '247d055504dcc852e539b9f7f30d19f9741474bf', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': 'e5d0bb8871668f20de8f3c94b5ae3f372346bc6e', 'versionType': 'git'}, {'status': 'affected', 'version': '2906f66a5682e5670a5eefe991843689b8d8563f', 'lessThan': '2f75c0faa3361b28e36cc0512b3299e163e25789', 'versionType': 'git'}], 'programFiles': ['net/netfilter/ipvs/ip_vs_proto_sctp.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '2.6.34'}, {'status': 'unaffected', 'version': '0', 'lessThan': '2.6.34', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.261', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.212', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.97', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.40', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc3', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['net/netfilter/ipvs/ip_vs_proto_sctp.c'], 'defaultStatus': 'affected'}] Added 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. Added Reference https://git.kernel.org/stable/c/247d055504dcc852e539b9f7f30d19f9741474bf Added Reference https://git.kernel.org/stable/c/290e9e8389b556efc603522e28bd1543846aa336 Added Reference https://git.kernel.org/stable/c/2f75c0faa3361b28e36cc0512b3299e163e25789 Added Reference https://git.kernel.org/stable/c/9cb5ac594ca76d3a71803b23b74c835b0721e628 Added Reference https://git.kernel.org/stable/c/9f94573ab962a9e81954b755da016fa3cd2f5039 Added Reference https://git.kernel.org/stable/c/a4a2d2e483d79cc2ad3a170674cf159644acf22b Added Reference https://git.kernel.org/stable/c/d2b8b1557ec07ea1bb5dddbceaf4dfe63d388e27 Added Reference https://git.kernel.org/stable/c/e5d0bb8871668f20de8f3c94b5ae3f372346bc6e