{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-23326","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-01-13T15:37:45.996Z","datePublished":"2026-03-25T10:27:19.021Z","dateUpdated":"2026-05-11T22:04:42.016Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-05-11T22:04:42.016Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nxsk: Fix fragment node deletion to prevent buffer leak\n\nAfter commit b692bf9a7543 (\"xsk: Get rid of xdp_buff_xsk::xskb_list_node\"),\nthe list_node field is reused for both the xskb pool list and the buffer\nfree list, this causes a buffer leak as described below.\n\nxp_free() checks if a buffer is already on the free list using\nlist_empty(&xskb->list_node). When list_del() is used to remove a node\nfrom the xskb pool list, it doesn't reinitialize the node pointers.\nThis means list_empty() will return false even after the node has been\nremoved, causing xp_free() to incorrectly skip adding the buffer to the\nfree list.\n\nFix this by using list_del_init() instead of list_del() in all fragment\nhandling paths, this ensures the list node is reinitialized after removal,\nallowing the list_empty() to work correctly."}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/xdp_sock_drv.h","net/xdp/xsk.c"],"versions":[{"version":"560c974b7ccd95bb9ff20df77f6654283e45c9c6","lessThan":"5172adf9efb8298a52f4dcdc3f98d4d9d1e06a6d","status":"affected","versionType":"git"},{"version":"fd5614763805d6f386bd07cc53558f88b1b1eb62","lessThan":"2a9ea988465ece5b6896b1bdc144170a64e84c35","status":"affected","versionType":"git"},{"version":"b692bf9a7543af7ad11a59d182a3757578f0ba53","lessThan":"645c6d8376ad4913cbffe0e0c2cca0c4febbe596","status":"affected","versionType":"git"},{"version":"b692bf9a7543af7ad11a59d182a3757578f0ba53","lessThan":"b38cbd4af5034635cff109e08788c63f956f3a69","status":"affected","versionType":"git"},{"version":"b692bf9a7543af7ad11a59d182a3757578f0ba53","lessThan":"60abb0ac11dccd6b98fd9182bc5f85b621688861","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/xdp_sock_drv.h","net/xdp/xsk.c"],"versions":[{"version":"6.13","status":"affected"},{"version":"0","lessThan":"6.13","status":"unaffected","versionType":"semver"},{"version":"6.18.17","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"6.19.7","lessThanOrEqual":"6.19.*","status":"unaffected","versionType":"semver"},{"version":"7.0","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.13","versionEndExcluding":"6.18.17"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.13","versionEndExcluding":"6.19.7"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.13","versionEndExcluding":"7.0"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/5172adf9efb8298a52f4dcdc3f98d4d9d1e06a6d"},{"url":"https://git.kernel.org/stable/c/2a9ea988465ece5b6896b1bdc144170a64e84c35"},{"url":"https://git.kernel.org/stable/c/645c6d8376ad4913cbffe0e0c2cca0c4febbe596"},{"url":"https://git.kernel.org/stable/c/b38cbd4af5034635cff109e08788c63f956f3a69"},{"url":"https://git.kernel.org/stable/c/60abb0ac11dccd6b98fd9182bc5f85b621688861"}],"title":"xsk: Fix fragment node deletion to prevent buffer leak","x_generator":{"engine":"bippy-1.2.0"}}}}