{"id":"CVE-2026-72020","state":"PUBLISHED","title":"ipvs: reset full ip_vs_seq structs in ip_vs_conn_new","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nipvs: reset full ip_vs_seq structs in ip_vs_conn_new\n\nCommit 9a05475cebdd (\"ipvs: avoid kmem_cache_zalloc in\nip_vs_conn_new\") changed ip_vs_conn_new() to allocate an ip_vs_conn\nobject with kmem_cache_alloc().  The function then initializes many\nfields explicitly, but only resets in_seq.delta and out_seq.delta in the\ntwo struct ip_vs_seq members.\n\nThat leaves init_seq and previous_delta uninitialized.  This is normally\nharmless while the corresponding IP_VS_CONN_F_IN_SEQ or\nIP_VS_CONN_F_OUT_SEQ flag is clear.  For connections learned from a sync\nmessage, however, ip_vs_proc_conn() preserves those flags from\nIP_VS_CONN_F_BACKUP_MASK and passes opt=NULL when the message omits\nIPVS_OPT_SEQ_DATA.  In that case the new connection can be hashed with\nSEQ flags set but with the rest of in_seq/out_seq still containing stale\nslab data.\n\nWhen a packet for such a connection is later handled by an IPVS\napplication helper, vs_fix_seq() and vs_fix_ack_seq() use\nprevious_delta and init_seq to rewrite TCP sequence numbers.  A malformed\nsync message can therefore make forwarded packets carry stale slab bytes\nin their TCP seq/ack numbers, and can also corrupt the forwarded TCP\nflow.\n\nReset both struct ip_vs_seq members completely before publishing the\nconnection.  This matches the existing \"reset struct ip_vs_seq\" comment\nand keeps the sequence-adjustment gates inactive unless valid sequence\ndata is installed later.","publishedAt":"2026-08-15T05:51:46.675Z","updatedAt":"2026-10-19T21:19:23.243Z","severity":{"score":9.8,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/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":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"3bf9a260188b2a5449cbddc032a749ab433fe328","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"6378c5cb360eb1750f88839d7c3613ea92ac1816","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"32c299e28b8eea6cbbd23b97dc61401e9ef9c445","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"9e36602cbec552286f7e691cfd366525c565ee74","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"d0eed7177e822cab83141e5c44b2aa345c7fd379","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"83fb4c2c5344f02eac929f66de3c9d1adfcde04c","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"6335ab62d5fc9ed875279238233fba3462c168f5","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"2975324d164c552b028632f107b567302863b7f6","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/ipvs/ip_vs_conn.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.10","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.10","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","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/netfilter/ipvs/ip_vs_conn.c"]}],"references":["https://git.kernel.org/stable/c/3bf9a260188b2a5449cbddc032a749ab433fe328","https://git.kernel.org/stable/c/6378c5cb360eb1750f88839d7c3613ea92ac1816","https://git.kernel.org/stable/c/32c299e28b8eea6cbbd23b97dc61401e9ef9c445","https://git.kernel.org/stable/c/9e36602cbec552286f7e691cfd366525c565ee74","https://git.kernel.org/stable/c/d0eed7177e822cab83141e5c44b2aa345c7fd379","https://git.kernel.org/stable/c/83fb4c2c5344f02eac929f66de3c9d1adfcde04c","https://git.kernel.org/stable/c/6335ab62d5fc9ed875279238233fba3462c168f5","https://git.kernel.org/stable/c/2975324d164c552b028632f107b567302863b7f6"],"weaknesses":["CWE-457"],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/72xxx/CVE-2026-72020.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-72020","state":"PUBLISHED","datePublished":"2026-08-15T05:51:46.675Z","dateUpdated":"2026-10-19T21:19:23.243Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-09T03:40:39.900Z"},"containers":{"cna":{"title":"ipvs: reset full ip_vs_seq structs in ip_vs_conn_new","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nipvs: reset full ip_vs_seq structs in ip_vs_conn_new\n\nCommit 9a05475cebdd (\"ipvs: avoid kmem_cache_zalloc in\nip_vs_conn_new\") changed ip_vs_conn_new() to allocate an ip_vs_conn\nobject with kmem_cache_alloc().  The function then initializes many\nfields explicitly, but only resets in_seq.delta and out_seq.delta in the\ntwo struct ip_vs_seq members.\n\nThat leaves init_seq and previous_delta uninitialized.  This is normally\nharmless while the corresponding IP_VS_CONN_F_IN_SEQ or\nIP_VS_CONN_F_OUT_SEQ flag is clear.  For connections learned from a sync\nmessage, however, ip_vs_proc_conn() preserves those flags from\nIP_VS_CONN_F_BACKUP_MASK and passes opt=NULL when the message omits\nIPVS_OPT_SEQ_DATA.  In that case the new connection can be hashed with\nSEQ flags set but with the rest of in_seq/out_seq still containing stale\nslab data.\n\nWhen a packet for such a connection is later handled by an IPVS\napplication helper, vs_fix_seq() and vs_fix_ack_seq() use\nprevious_delta and init_seq to rewrite TCP sequence numbers.  A malformed\nsync message can therefore make forwarded packets carry stale slab bytes\nin their TCP seq/ack numbers, and can also corrupt the forwarded TCP\nflow.\n\nReset both struct ip_vs_seq members completely before publishing the\nconnection.  This matches the existing \"reset struct ip_vs_seq\" comment\nand keeps the sequence-adjustment gates inactive unless valid sequence\ndata is installed later."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"3bf9a260188b2a5449cbddc032a749ab433fe328","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"6378c5cb360eb1750f88839d7c3613ea92ac1816","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"32c299e28b8eea6cbbd23b97dc61401e9ef9c445","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"9e36602cbec552286f7e691cfd366525c565ee74","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"d0eed7177e822cab83141e5c44b2aa345c7fd379","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"83fb4c2c5344f02eac929f66de3c9d1adfcde04c","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"6335ab62d5fc9ed875279238233fba3462c168f5","versionType":"git"},{"version":"9a05475cebdd6341884b5901e53870be26e65158","status":"affected","lessThan":"2975324d164c552b028632f107b567302863b7f6","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/ipvs/ip_vs_conn.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.10","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.10","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","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/netfilter/ipvs/ip_vs_conn.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/3bf9a260188b2a5449cbddc032a749ab433fe328"},{"url":"https://git.kernel.org/stable/c/6378c5cb360eb1750f88839d7c3613ea92ac1816"},{"url":"https://git.kernel.org/stable/c/32c299e28b8eea6cbbd23b97dc61401e9ef9c445"},{"url":"https://git.kernel.org/stable/c/9e36602cbec552286f7e691cfd366525c565ee74"},{"url":"https://git.kernel.org/stable/c/d0eed7177e822cab83141e5c44b2aa345c7fd379"},{"url":"https://git.kernel.org/stable/c/83fb4c2c5344f02eac929f66de3c9d1adfcde04c"},{"url":"https://git.kernel.org/stable/c/6335ab62d5fc9ed875279238233fba3462c168f5"},{"url":"https://git.kernel.org/stable/c/2975324d164c552b028632f107b567302863b7f6"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - The bug is reached when a host running the IPVS backup sync receiver processes forged UDP sync datagrams (default multicast 224.0.0.81:8848) in ip_vs_process_message(), which is a network packet receive path rather than a local-only ioctl/netlink interface.\nAC:L - Once IPVS backup sync is enabled, an attacker can reliably send IPVS v1 messages that set IP_VS_CONN_F_IN_SEQ/OUT_SEQ while omitting IPVS_OPT_SEQ_DATA; no race, heap grooming, or victim-specific state beyond matching syncid (often 0) is required.\nPR:N - The backup sync socket accepts unauthenticated UDP input with no capability checks; only an optional syncid filter (frequently left at 0) may drop messages, so the attacker needs no Linux privileges to inject the malformed sync records.\nUI:N - No end-user or administrator interaction is required at exploit time; the attacker directly delivers crafted sync messages to the listening backup daemon without victims opening files, clicking links, or changing settings.\nS:U - Exploitation stays within the IPVS load balancer kernel/network authority and affects connections it forwards; it does not constitute a VM escape, sandbox breakout, or cross-security-authority boundary such as guest-to-host.\nC:H - Uninitialized ip_vs_seq init_seq and previous_delta fields retain stale slab data that vs_fix_seq()/vs_fix_ack_seq() apply when rewriting forwarded TCP seq/ack numbers, leaking kernel heap bytes onto the network to clients or backend servers.\nI:H - Those same uninitialized sequence-adjustment fields cause incorrect TCP sequence/ack rewriting in NAT/application-helper paths (ip_vs_app_pkt_in/out), corrupting load-balanced TCP flows and enabling attacker-driven manipulation of forwarded traffic integrity.\nA:H - Corrupted TCP sequence handling breaks or resets connections on the virtual service and can be triggered repeatedly via additional forged sync messages, causing sustained denial of service to load-balanced traffic on the affected backup node."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T05:39:30.496Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"5.10.261"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"5.15.212"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"6.1.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"6.12.97"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"6.18.40"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-72020","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T15:50:08.361059Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-457","lang":"en","type":"CWE","description":"CWE-457 Use of Uninitialized Variable"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T21:19:23.243Z"}}]}}}