In the Linux kernel, the following vulnerability has been resolved:
nouveau/dmem: handle kcalloc() allocation failure
The kcalloc() in nouveaudmemevictchunk() will return null if the physical memory has run out. As a result, if we dereference srcpfns, dstpfns or dmaaddrs, the null pointer dereference bugs will happen.
Moreover, the GPU is going away. If the kcalloc() fails, we could not evict all pages mapping a chunk. So this patch adds a _GFPNOFAIL flag in kcalloc().
Finally, as there is no need to have physically contiguous memory, this patch switches kcalloc() to kvcalloc() in order to avoid failing allocations.
{ "vanir_signatures": [ { "digest": { "threshold": 0.9, "line_hashes": [ "77879963299872666214262329850435450904", "169856899717642553153812506424113100856", "117696475437658040404832340001000641529", "301951330956463525201411793231184908257", "6024507734883935846487338603007653695", "225643418735271800755751533031875777839", "335596901652744039750558092309620344663", "195356023756633123036208451772452282901", "257919803158158461707489606566202961467", "191508604457427030970025170743533465977", "324329020007257183379733600701108785426", "175382205499771438027676850970108531313", "9833926707559289685144908492475667225", "249479859356556577365701324891253446419" ] }, "signature_version": "v1", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5e81773757a95fc298e96cfd6d4700f07b6192a2", "target": { "file": "drivers/gpu/drm/nouveau/nouveau_dmem.c" }, "id": "CVE-2024-26943-0cd2f785", "signature_type": "Line" }, { "digest": { "length": 1029.0, "function_hash": "105693737542441334502482282042198290288" }, "signature_version": "v1", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5e81773757a95fc298e96cfd6d4700f07b6192a2", "target": { "file": "drivers/gpu/drm/nouveau/nouveau_dmem.c", "function": "nouveau_dmem_evict_chunk" }, "id": "CVE-2024-26943-0e988f69", "signature_type": "Function" }, { "digest": { "length": 1037.0, "function_hash": "247172749206540508592754161357874593693" }, "signature_version": "v1", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9acfd8b083a0ffbd387566800d89f55058a68af2", "target": { "file": "drivers/gpu/drm/nouveau/nouveau_dmem.c", "function": "nouveau_dmem_evict_chunk" }, "id": "CVE-2024-26943-25458cac", "signature_type": "Function" }, { "digest": { "threshold": 0.9, "line_hashes": [ "77879963299872666214262329850435450904", "169856899717642553153812506424113100856", "117696475437658040404832340001000641529", "301951330956463525201411793231184908257", "6024507734883935846487338603007653695", "225643418735271800755751533031875777839", "335596901652744039750558092309620344663", "195356023756633123036208451772452282901", "257919803158158461707489606566202961467", "191508604457427030970025170743533465977", "324329020007257183379733600701108785426", "175382205499771438027676850970108531313", "9833926707559289685144908492475667225", "249479859356556577365701324891253446419" ] }, "signature_version": "v1", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3e82f7383e0b82a835e6b6b06a348b2bc4e2c2ee", "target": { "file": "drivers/gpu/drm/nouveau/nouveau_dmem.c" }, "id": "CVE-2024-26943-261331f3", "signature_type": "Line" }, { "digest": { "length": 1029.0, "function_hash": "105693737542441334502482282042198290288" }, "signature_version": "v1", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2a84744a037b8a511d6a9055f3defddc28ff4a4d", "target": { "file": "drivers/gpu/drm/nouveau/nouveau_dmem.c", "function": "nouveau_dmem_evict_chunk" }, "id": "CVE-2024-26943-77fc5298", "signature_type": "Function" }, { "digest": { "threshold": 0.9, "line_hashes": [ "77879963299872666214262329850435450904", "169856899717642553153812506424113100856", "117696475437658040404832340001000641529", "301951330956463525201411793231184908257", "6024507734883935846487338603007653695", "225643418735271800755751533031875777839", "335596901652744039750558092309620344663", "195356023756633123036208451772452282901", "257919803158158461707489606566202961467", "191508604457427030970025170743533465977", "324329020007257183379733600701108785426", "175382205499771438027676850970108531313", "9833926707559289685144908492475667225", "249479859356556577365701324891253446419" ] }, "signature_version": "v1", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@16e87fe23d4af6df920406494ced5c0f4354567b", "target": { "file": "drivers/gpu/drm/nouveau/nouveau_dmem.c" }, "id": "CVE-2024-26943-87dcd2be", "signature_type": "Line" }, { "digest": { "length": 1029.0, "function_hash": "105693737542441334502482282042198290288" }, "signature_version": "v1", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@16e87fe23d4af6df920406494ced5c0f4354567b", "target": { "file": "drivers/gpu/drm/nouveau/nouveau_dmem.c", "function": "nouveau_dmem_evict_chunk" }, "id": "CVE-2024-26943-ab9c2124", "signature_type": "Function" }, { "digest": { "length": 1029.0, "function_hash": "105693737542441334502482282042198290288" }, "signature_version": "v1", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3e82f7383e0b82a835e6b6b06a348b2bc4e2c2ee", "target": { "file": "drivers/gpu/drm/nouveau/nouveau_dmem.c", "function": "nouveau_dmem_evict_chunk" }, "id": "CVE-2024-26943-e5cbda93", "signature_type": "Function" }, { "digest": { "threshold": 0.9, "line_hashes": [ "77879963299872666214262329850435450904", "169856899717642553153812506424113100856", "117696475437658040404832340001000641529", "301951330956463525201411793231184908257", "6024507734883935846487338603007653695", "225643418735271800755751533031875777839", "335596901652744039750558092309620344663", "195356023756633123036208451772452282901", "257919803158158461707489606566202961467", "191508604457427030970025170743533465977", "324329020007257183379733600701108785426", "175382205499771438027676850970108531313", "9833926707559289685144908492475667225", "249479859356556577365701324891253446419" ] }, "signature_version": "v1", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9acfd8b083a0ffbd387566800d89f55058a68af2", "target": { "file": "drivers/gpu/drm/nouveau/nouveau_dmem.c" }, "id": "CVE-2024-26943-e612ed82", "signature_type": "Line" }, { "digest": { "threshold": 0.9, "line_hashes": [ "77879963299872666214262329850435450904", "169856899717642553153812506424113100856", "117696475437658040404832340001000641529", "301951330956463525201411793231184908257", "6024507734883935846487338603007653695", "225643418735271800755751533031875777839", "335596901652744039750558092309620344663", "195356023756633123036208451772452282901", "257919803158158461707489606566202961467", "191508604457427030970025170743533465977", "324329020007257183379733600701108785426", "175382205499771438027676850970108531313", "9833926707559289685144908492475667225", "249479859356556577365701324891253446419" ] }, "signature_version": "v1", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2a84744a037b8a511d6a9055f3defddc28ff4a4d", "target": { "file": "drivers/gpu/drm/nouveau/nouveau_dmem.c" }, "id": "CVE-2024-26943-efd5fc86", "signature_type": "Line" } ] }