In the Linux kernel, the following vulnerability has been resolved:
drm/msm/dpu: cleanup FB if dpuformatpopulate_layout fails
If the dpuformatpopulatelayout() fails, then FB is prepared, but not cleaned up. This ends up leaking the pincount on the GEM object and causes a splat during DRM file closure:
msmobj->pincount WARNING: CPU: 2 PID: 569 at drivers/gpu/drm/msm/msmgem.c:121 updatelrulocked+0xc4/0xcc [...] Call trace: updatelrulocked+0xc4/0xcc putpages+0xac/0x100 msmgemfreeobject+0x138/0x180 drmgemobjectfree+0x1c/0x30 drmgemobjecthandleputunlocked+0x108/0x10c drmgemobjectreleasehandle+0x58/0x70 idrforeach+0x68/0xec drmgemrelease+0x28/0x40 drmfilefree+0x174/0x234 drmrelease+0xb0/0x160 _fput+0xc0/0x2c8 _fputsync+0x50/0x5c _arm64sysclose+0x38/0x7c invokesyscall+0x48/0x118 el0svccommon.constprop.0+0x40/0xe0 doel0svc+0x1c/0x28 el0svc+0x4c/0x120 el0t64synchandler+0x100/0x12c el0t64sync+0x190/0x194 irq event stamp: 129818 hardirqs last enabled at (129817): [<ffffa5f6d953fcc0>] consoleunlock+0x118/0x124 hardirqs last disabled at (129818): [<ffffa5f6da7dcf04>] el1dbg+0x24/0x8c softirqs last enabled at (129808): [<ffffa5f6d94afc18>] handlesoftirqs+0x4c8/0x4e8 softirqs last disabled at (129785): [<ffffa5f6d94105e4>] _dosoftirq+0x14/0x20
Patchwork: https://patchwork.freedesktop.org/patch/600714/
{ "vanir_signatures": [ { "id": "CVE-2024-44982-476cf490", "signature_type": "Function", "target": { "file": "drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c", "function": "dpu_plane_prepare_fb" }, "deprecated": false, "digest": { "length": 712.0, "function_hash": "216661626650612462080025810691217468445" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7ecf85542169012765e4c2817cd3be6c2e009962" }, { "id": "CVE-2024-44982-5677213b", "signature_type": "Function", "target": { "file": "drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c", "function": "dpu_plane_prepare_fb" }, "deprecated": false, "digest": { "length": 712.0, "function_hash": "216661626650612462080025810691217468445" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a3c5815b07f4ee19d0b7e2ddf91ff9f03ecbf27d" }, { "id": "CVE-2024-44982-82ec494d", "signature_type": "Function", "target": { "file": "drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c", "function": "dpu_plane_prepare_fb" }, "deprecated": false, "digest": { "length": 712.0, "function_hash": "216661626650612462080025810691217468445" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@02193c70723118889281f75b88722b26b58bf4ae" }, { "id": "CVE-2024-44982-98ca38c6", "signature_type": "Line", "target": { "file": "drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c" }, "deprecated": false, "digest": { "line_hashes": [ "161716855980610291663749439877277625150", "220203335181148641786711367127123012830", "138487142852100470300966322493721169862", "17805901078947130213010868311931637644" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@02193c70723118889281f75b88722b26b58bf4ae" }, { "id": "CVE-2024-44982-ba333489", "signature_type": "Line", "target": { "file": "drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c" }, "deprecated": false, "digest": { "line_hashes": [ "161716855980610291663749439877277625150", "220203335181148641786711367127123012830", "138487142852100470300966322493721169862", "17805901078947130213010868311931637644" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a3c5815b07f4ee19d0b7e2ddf91ff9f03ecbf27d" }, { "id": "CVE-2024-44982-bfbbd78a", "signature_type": "Line", "target": { "file": "drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c" }, "deprecated": false, "digest": { "line_hashes": [ "161716855980610291663749439877277625150", "220203335181148641786711367127123012830", "138487142852100470300966322493721169862", "17805901078947130213010868311931637644" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9b8b65211a880af8fe8330a101e1e239a2d4008f" }, { "id": "CVE-2024-44982-c2917eb1", "signature_type": "Line", "target": { "file": "drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c" }, "deprecated": false, "digest": { "line_hashes": [ "161716855980610291663749439877277625150", "220203335181148641786711367127123012830", "138487142852100470300966322493721169862", "17805901078947130213010868311931637644" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7ecf85542169012765e4c2817cd3be6c2e009962" }, { "id": "CVE-2024-44982-f0c77759", "signature_type": "Function", "target": { "file": "drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c", "function": "dpu_plane_prepare_fb" }, "deprecated": false, "digest": { "length": 712.0, "function_hash": "216661626650612462080025810691217468445" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9b8b65211a880af8fe8330a101e1e239a2d4008f" } ] }