{"id":"CVE-2026-98621","state":"PUBLISHED","title":"net: gue: reject invalid REMCSUM offsets","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: gue: reject invalid REMCSUM offsets\n\nThe REMCSUM option carries an absolute checksum start and checksum field\noffset. gue_remcsum() passes them to skb_remcsum_process(), whose\npartial path stores offset - start in the u16 skb->csum_offset variable.\nIf offset is less than start, this underflows.\n\nA forwarded packet can retain CHECKSUM_PARTIAL and reach a NETIF_F_HW_CSUM\ndriver which trusts the metadata, leading skb_copy_and_csum_dev() to write\ntwo bytes about 64 KiB beyond the destination buffer.\n\nReject reversed tuples in validate_gue_flags(), after the existing length\nvalidation, so all GUE parsers enforce the ordering in one place.","publishedAt":"2026-10-18T15:19:41.211Z","updatedAt":"2026-10-19T09:22:49.371Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"4b9bc21b2396c396d88dd909caaf73d5be6ff593","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"43efb1f997e976f386aa89716f55870cd2cff9ad","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"1eeec0c51fd5598da44080ed96bbd9880021c28b","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"1d664be4ca49d1696e85239236f4988dfc4653c3","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"97f907203321eee2cc9132d5c9eb47698fb41d35","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"40aeafbcbc7bc4018e8f74bbbb4d29ed8846f57f","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"c20f755338ca234e523dfc943719f194dfc1f903","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"2566866fc30965d915d0b52b5c3323b362619f0e","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/gue.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.0","versionType":"semver"},{"version":"5.10.271","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.222","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.189","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.158","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.112","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.55","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.9","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/gue.h"]}],"references":["https://git.kernel.org/stable/c/4b9bc21b2396c396d88dd909caaf73d5be6ff593","https://git.kernel.org/stable/c/43efb1f997e976f386aa89716f55870cd2cff9ad","https://git.kernel.org/stable/c/1eeec0c51fd5598da44080ed96bbd9880021c28b","https://git.kernel.org/stable/c/1d664be4ca49d1696e85239236f4988dfc4653c3","https://git.kernel.org/stable/c/97f907203321eee2cc9132d5c9eb47698fb41d35","https://git.kernel.org/stable/c/40aeafbcbc7bc4018e8f74bbbb4d29ed8846f57f","https://git.kernel.org/stable/c/c20f755338ca234e523dfc943719f194dfc1f903","https://git.kernel.org/stable/c/2566866fc30965d915d0b52b5c3323b362619f0e"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:43.249Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/98xxx/CVE-2026-98621.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-98621","state":"PUBLISHED","datePublished":"2026-10-18T15:19:41.211Z","dateUpdated":"2026-10-19T09:22:49.371Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-09-25T10:25:14.360Z"},"containers":{"cna":{"title":"net: gue: reject invalid REMCSUM offsets","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: gue: reject invalid REMCSUM offsets\n\nThe REMCSUM option carries an absolute checksum start and checksum field\noffset. gue_remcsum() passes them to skb_remcsum_process(), whose\npartial path stores offset - start in the u16 skb->csum_offset variable.\nIf offset is less than start, this underflows.\n\nA forwarded packet can retain CHECKSUM_PARTIAL and reach a NETIF_F_HW_CSUM\ndriver which trusts the metadata, leading skb_copy_and_csum_dev() to write\ntwo bytes about 64 KiB beyond the destination buffer.\n\nReject reversed tuples in validate_gue_flags(), after the existing length\nvalidation, so all GUE parsers enforce the ordering in one place."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"4b9bc21b2396c396d88dd909caaf73d5be6ff593","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"43efb1f997e976f386aa89716f55870cd2cff9ad","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"1eeec0c51fd5598da44080ed96bbd9880021c28b","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"1d664be4ca49d1696e85239236f4988dfc4653c3","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"97f907203321eee2cc9132d5c9eb47698fb41d35","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"40aeafbcbc7bc4018e8f74bbbb4d29ed8846f57f","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"c20f755338ca234e523dfc943719f194dfc1f903","versionType":"git"},{"version":"fe881ef11cf0220f118816181930494d484c4883","status":"affected","lessThan":"2566866fc30965d915d0b52b5c3323b362619f0e","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/gue.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.0","versionType":"semver"},{"version":"5.10.271","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.222","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.189","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.158","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.112","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.55","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.9","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/gue.h"]}],"references":[{"url":"https://git.kernel.org/stable/c/4b9bc21b2396c396d88dd909caaf73d5be6ff593"},{"url":"https://git.kernel.org/stable/c/43efb1f997e976f386aa89716f55870cd2cff9ad"},{"url":"https://git.kernel.org/stable/c/1eeec0c51fd5598da44080ed96bbd9880021c28b"},{"url":"https://git.kernel.org/stable/c/1d664be4ca49d1696e85239236f4988dfc4653c3"},{"url":"https://git.kernel.org/stable/c/97f907203321eee2cc9132d5c9eb47698fb41d35"},{"url":"https://git.kernel.org/stable/c/40aeafbcbc7bc4018e8f74bbbb4d29ed8846f57f"},{"url":"https://git.kernel.org/stable/c/c20f755338ca234e523dfc943719f194dfc1f903"},{"url":"https://git.kernel.org/stable/c/2566866fc30965d915d0b52b5c3323b362619f0e"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T09:22:49.371Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.0","versionEndExcluding":"5.10.271"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.0","versionEndExcluding":"5.15.222"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.0","versionEndExcluding":"6.1.189"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.0","versionEndExcluding":"6.6.158"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.0","versionEndExcluding":"6.12.112"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.0","versionEndExcluding":"6.18.55"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.0","versionEndExcluding":"7.2.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.0","versionEndExcluding":"7.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}