| From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2024-53084: drm/imagination: Break an object reference loop |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| drm/imagination: Break an object reference loop |
| |
| When remaining resources are being cleaned up on driver close, |
| outstanding VM mappings may result in resources being leaked, due |
| to an object reference loop, as shown below, with each object (or |
| set of objects) referencing the object below it: |
| |
| PVR GEM Object |
| GPU scheduler "finished" fence |
| GPU scheduler “scheduled” fence |
| PVR driver “done” fence |
| PVR Context |
| PVR VM Context |
| PVR VM Mappings |
| PVR GEM Object |
| |
| The reference that the PVR VM Context has on the VM mappings is a |
| soft one, in the sense that the freeing of outstanding VM mappings |
| is done as part of VM context destruction; no reference counts are |
| involved, as is the case for all the other references in the loop. |
| |
| To break the reference loop during cleanup, free the outstanding |
| VM mappings before destroying the PVR Context associated with the |
| VM context. |
| |
| The Linux kernel CVE team has assigned CVE-2024-53084 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 6.8 with commit 4babef0708656c54e67ee0ee3994ee98898f51d1 and fixed in 6.11.8 with commit cb86db12b290ed07d05df00d99fa150bb123e80e |
| Issue introduced in 6.8 with commit 4babef0708656c54e67ee0ee3994ee98898f51d1 and fixed in 6.12 with commit b04ce1e718bd55302b52d05d6873e233cb3ec7a1 |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2024-53084 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| drivers/gpu/drm/imagination/pvr_context.c |
| drivers/gpu/drm/imagination/pvr_context.h |
| drivers/gpu/drm/imagination/pvr_vm.c |
| drivers/gpu/drm/imagination/pvr_vm.h |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/cb86db12b290ed07d05df00d99fa150bb123e80e |
| https://git.kernel.org/stable/c/b04ce1e718bd55302b52d05d6873e233cb3ec7a1 |