{"id":"CVE-2026-80788","state":"PUBLISHED","title":"nvmet-tcp: Do not WARN on remotely-controlled oversized SGL allocations","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet-tcp: Do not WARN on remotely-controlled oversized SGL allocations\n\nWhen fuzzing the nvme target code, I tripped a kernel warning in\nnvmet_tcp_map_data() because the length passed into the allocator is\ncontrolled by the remote initiator.\n\nA remote initiator that sends a command with an SGL claiming a huge\nnumber, can create a scatterlist and iovec allocation of over 1 million\nentries, which causes the backing kmalloc call to exceed MAX_PAGE_ORDER\nand then the page allocator will trip on a WARN_ON_ONCE_GFP() message:\n\n  WARNING: mm/page_alloc.c:5280 __alloc_frozen_pages_noprof\n  Workqueue: nvmet_tcp_wq nvmet_tcp_io_work\n  ...\n  sgl_alloc_order\n  nvmet_tcp_map_data\n  nvmet_tcp_try_recv_pdu\n\nAs it's never good to trip a kernel warning remotely due to many systems\nhaving panic-on-warn enabled, let's silence it by just add GFP_NOWARN to\nthe allocation flags.","publishedAt":"2026-09-04T15:12:59.912Z","updatedAt":"2026-10-19T08:43:40.496Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"8d01f0d0e96485e39ad89b859ef85e1dc3020465","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"7b6a54d4e7b0da423c2b53ed293fd36b16c0b19e","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"e7077e6c45423dd2bb7de7b5fc4b018a8e6c4741","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"86cc450022473c4a29b43a09f3ec22a9ef566dac","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"c509f20be1cabda3087810bb2d658d66b3f31f35","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"9c95f7e66c62ee6c6abedcf1c04311f430ff5833","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"7fd6da0f28932442b51658bac4ff55565ca9b377","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"9b770e40bc00381e5ebf53653de5776773415be3","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"737a3b535247226f6e1a7988fd9d6e63e7d6fc71","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/nvme/target/tcp.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.0","versionType":"semver"},{"version":"5.10.267","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.218","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.185","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.154","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.106","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.47","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.11","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2.1","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":["drivers/nvme/target/tcp.c"]}],"references":["https://git.kernel.org/stable/c/8d01f0d0e96485e39ad89b859ef85e1dc3020465","https://git.kernel.org/stable/c/7b6a54d4e7b0da423c2b53ed293fd36b16c0b19e","https://git.kernel.org/stable/c/e7077e6c45423dd2bb7de7b5fc4b018a8e6c4741","https://git.kernel.org/stable/c/86cc450022473c4a29b43a09f3ec22a9ef566dac","https://git.kernel.org/stable/c/c509f20be1cabda3087810bb2d658d66b3f31f35","https://git.kernel.org/stable/c/9c95f7e66c62ee6c6abedcf1c04311f430ff5833","https://git.kernel.org/stable/c/7fd6da0f28932442b51658bac4ff55565ca9b377","https://git.kernel.org/stable/c/9b770e40bc00381e5ebf53653de5776773415be3","https://git.kernel.org/stable/c/737a3b535247226f6e1a7988fd9d6e63e7d6fc71"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:07.220Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/80xxx/CVE-2026-80788.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-80788","state":"PUBLISHED","datePublished":"2026-09-04T15:12:59.912Z","dateUpdated":"2026-10-19T08:43:40.496Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-26T14:34:25.793Z"},"containers":{"cna":{"title":"nvmet-tcp: Do not WARN on remotely-controlled oversized SGL allocations","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet-tcp: Do not WARN on remotely-controlled oversized SGL allocations\n\nWhen fuzzing the nvme target code, I tripped a kernel warning in\nnvmet_tcp_map_data() because the length passed into the allocator is\ncontrolled by the remote initiator.\n\nA remote initiator that sends a command with an SGL claiming a huge\nnumber, can create a scatterlist and iovec allocation of over 1 million\nentries, which causes the backing kmalloc call to exceed MAX_PAGE_ORDER\nand then the page allocator will trip on a WARN_ON_ONCE_GFP() message:\n\n  WARNING: mm/page_alloc.c:5280 __alloc_frozen_pages_noprof\n  Workqueue: nvmet_tcp_wq nvmet_tcp_io_work\n  ...\n  sgl_alloc_order\n  nvmet_tcp_map_data\n  nvmet_tcp_try_recv_pdu\n\nAs it's never good to trip a kernel warning remotely due to many systems\nhaving panic-on-warn enabled, let's silence it by just add GFP_NOWARN to\nthe allocation flags."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"8d01f0d0e96485e39ad89b859ef85e1dc3020465","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"7b6a54d4e7b0da423c2b53ed293fd36b16c0b19e","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"e7077e6c45423dd2bb7de7b5fc4b018a8e6c4741","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"86cc450022473c4a29b43a09f3ec22a9ef566dac","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"c509f20be1cabda3087810bb2d658d66b3f31f35","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"9c95f7e66c62ee6c6abedcf1c04311f430ff5833","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"7fd6da0f28932442b51658bac4ff55565ca9b377","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"9b770e40bc00381e5ebf53653de5776773415be3","versionType":"git"},{"version":"872d26a391da92ed8f0c0f5cb5fef428067b7f30","status":"affected","lessThan":"737a3b535247226f6e1a7988fd9d6e63e7d6fc71","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/nvme/target/tcp.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.0","versionType":"semver"},{"version":"5.10.267","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.218","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.185","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.154","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.106","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.47","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.11","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2.1","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":["drivers/nvme/target/tcp.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/8d01f0d0e96485e39ad89b859ef85e1dc3020465"},{"url":"https://git.kernel.org/stable/c/7b6a54d4e7b0da423c2b53ed293fd36b16c0b19e"},{"url":"https://git.kernel.org/stable/c/e7077e6c45423dd2bb7de7b5fc4b018a8e6c4741"},{"url":"https://git.kernel.org/stable/c/86cc450022473c4a29b43a09f3ec22a9ef566dac"},{"url":"https://git.kernel.org/stable/c/c509f20be1cabda3087810bb2d658d66b3f31f35"},{"url":"https://git.kernel.org/stable/c/9c95f7e66c62ee6c6abedcf1c04311f430ff5833"},{"url":"https://git.kernel.org/stable/c/7fd6da0f28932442b51658bac4ff55565ca9b377"},{"url":"https://git.kernel.org/stable/c/9b770e40bc00381e5ebf53653de5776773415be3"},{"url":"https://git.kernel.org/stable/c/737a3b535247226f6e1a7988fd9d6e63e7d6fc71"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T08:43:40.496Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"5.10.267"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"5.15.218"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.1.185"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.6.154"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.12.106"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.18.47"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"7.1.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"7.2.1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"7.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}