{"id":"CVE-2024-26943","state":"PUBLISHED","title":"nouveau/dmem: handle kcalloc() allocation failure","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnouveau/dmem: handle kcalloc() allocation failure\n\nThe kcalloc() in nouveau_dmem_evict_chunk() will return null if\nthe physical memory has run out. As a result, if we dereference\nsrc_pfns, dst_pfns or dma_addrs, the null pointer dereference bugs\nwill happen.\n\nMoreover, the GPU is going away. If the kcalloc() fails, we could not\nevict all pages mapping a chunk. So this patch adds a __GFP_NOFAIL\nflag in kcalloc().\n\nFinally, as there is no need to have physically contiguous memory,\nthis patch switches kcalloc() to kvcalloc() in order to avoid\nfailing allocations.","publishedAt":"2024-05-01T05:18:00.713Z","updatedAt":"2026-05-11T20:07:22.822Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"249881232e1471d28b68f9a3829acc14d150cf5d","status":"affected","lessThan":"9acfd8b083a0ffbd387566800d89f55058a68af2","versionType":"git"},{"version":"249881232e1471d28b68f9a3829acc14d150cf5d","status":"affected","lessThan":"2a84744a037b8a511d6a9055f3defddc28ff4a4d","versionType":"git"},{"version":"249881232e1471d28b68f9a3829acc14d150cf5d","status":"affected","lessThan":"5e81773757a95fc298e96cfd6d4700f07b6192a2","versionType":"git"},{"version":"249881232e1471d28b68f9a3829acc14d150cf5d","status":"affected","lessThan":"3e82f7383e0b82a835e6b6b06a348b2bc4e2c2ee","versionType":"git"},{"version":"249881232e1471d28b68f9a3829acc14d150cf5d","status":"affected","lessThan":"16e87fe23d4af6df920406494ced5c0f4354567b","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/nouveau/nouveau_dmem.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.1","versionType":"semver"},{"version":"6.1.84","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.24","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.7.12","status":"unaffected","lessThanOrEqual":"6.7.*","versionType":"semver"},{"version":"6.8.3","status":"unaffected","lessThanOrEqual":"6.8.*","versionType":"semver"},{"version":"6.9","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/nouveau/nouveau_dmem.c"]}],"references":["https://git.kernel.org/stable/c/9acfd8b083a0ffbd387566800d89f55058a68af2","https://git.kernel.org/stable/c/2a84744a037b8a511d6a9055f3defddc28ff4a4d","https://git.kernel.org/stable/c/5e81773757a95fc298e96cfd6d4700f07b6192a2","https://git.kernel.org/stable/c/3e82f7383e0b82a835e6b6b06a348b2bc4e2c2ee","https://git.kernel.org/stable/c/16e87fe23d4af6df920406494ced5c0f4354567b"],"weaknesses":[],"ingestedAt":"2026-10-29T20:07:10.607Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/26xxx/CVE-2024-26943.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-26943","state":"PUBLISHED","datePublished":"2024-05-01T05:18:00.713Z","dateUpdated":"2026-05-11T20:07:22.822Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-02-19T14:20:24.197Z"},"containers":{"cna":{"title":"nouveau/dmem: handle kcalloc() allocation failure","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnouveau/dmem: handle kcalloc() allocation failure\n\nThe kcalloc() in nouveau_dmem_evict_chunk() will return null if\nthe physical memory has run out. As a result, if we dereference\nsrc_pfns, dst_pfns or dma_addrs, the null pointer dereference bugs\nwill happen.\n\nMoreover, the GPU is going away. If the kcalloc() fails, we could not\nevict all pages mapping a chunk. So this patch adds a __GFP_NOFAIL\nflag in kcalloc().\n\nFinally, as there is no need to have physically contiguous memory,\nthis patch switches kcalloc() to kvcalloc() in order to avoid\nfailing allocations."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"249881232e1471d28b68f9a3829acc14d150cf5d","status":"affected","lessThan":"9acfd8b083a0ffbd387566800d89f55058a68af2","versionType":"git"},{"version":"249881232e1471d28b68f9a3829acc14d150cf5d","status":"affected","lessThan":"2a84744a037b8a511d6a9055f3defddc28ff4a4d","versionType":"git"},{"version":"249881232e1471d28b68f9a3829acc14d150cf5d","status":"affected","lessThan":"5e81773757a95fc298e96cfd6d4700f07b6192a2","versionType":"git"},{"version":"249881232e1471d28b68f9a3829acc14d150cf5d","status":"affected","lessThan":"3e82f7383e0b82a835e6b6b06a348b2bc4e2c2ee","versionType":"git"},{"version":"249881232e1471d28b68f9a3829acc14d150cf5d","status":"affected","lessThan":"16e87fe23d4af6df920406494ced5c0f4354567b","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/nouveau/nouveau_dmem.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.1","versionType":"semver"},{"version":"6.1.84","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.24","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.7.12","status":"unaffected","lessThanOrEqual":"6.7.*","versionType":"semver"},{"version":"6.8.3","status":"unaffected","lessThanOrEqual":"6.8.*","versionType":"semver"},{"version":"6.9","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/nouveau/nouveau_dmem.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/9acfd8b083a0ffbd387566800d89f55058a68af2"},{"url":"https://git.kernel.org/stable/c/2a84744a037b8a511d6a9055f3defddc28ff4a4d"},{"url":"https://git.kernel.org/stable/c/5e81773757a95fc298e96cfd6d4700f07b6192a2"},{"url":"https://git.kernel.org/stable/c/3e82f7383e0b82a835e6b6b06a348b2bc4e2c2ee"},{"url":"https://git.kernel.org/stable/c/16e87fe23d4af6df920406494ced5c0f4354567b"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T20:07:22.822Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.1.84"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.6.24"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.7.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.8.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.9"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2024-07-17T14:21:43.677577Z","id":"CVE-2024-26943","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-07-17T14:21:55.983Z"}},{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/9acfd8b083a0ffbd387566800d89f55058a68af2","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/2a84744a037b8a511d6a9055f3defddc28ff4a4d","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/5e81773757a95fc298e96cfd6d4700f07b6192a2","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/3e82f7383e0b82a835e6b6b06a348b2bc4e2c2ee","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/16e87fe23d4af6df920406494ced5c0f4354567b","tags":["x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-02T00:21:05.681Z"}}]}}}