Description
In the Linux kernel, the following vulnerability has been resolved: drm: Fix drm_crtc_commit leak if signaled when PAGE_FLIP_EVENT is used Commit 1c6ceeee6ebb ("drm/atomic: Fix memleak on ERESTARTSYS during non-blocking commits") fixed a very similar issue when the event was allocated by drm_atomic_helper_setup_commit() itself. However, if the event is allocated in prepare_signaling(), it will also be set to NULL in complete_signaling(), which prevents drm_crtc_commit from being put in __drm_atomic_helper_crtc_destroy_state(). Dropping the reference when the event is set to NULL at complete_signaling() fixes the leak. The leak can be reproduced by sending a signal to the thread using DRM_MODE_PAGE_FLIP_EVENT and using a sw_sync fence to cause the atomic ioctl to block at drm_atomic_helper_wait_for_fences(). It happened both with amdgpu and vkms.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
24835e442f289813aa568d142a755672a740503c to < c5517b71101f61a45144e3cf77a19626355272deaffected24835e442f289813aa568d142a755672a740503c to < 866a04137dac7e82a3848851061ff7ed15c2847eaffected24835e442f289813aa568d142a755672a740503c to < 6a6a7aae4681a20cd32789fea9a487aaafa0e7a3affected24835e442f289813aa568d142a755672a740503c to < e2f27b5ed9084feb7bae9ef2bc80de37c92280b1affected24835e442f289813aa568d142a755672a740503c to < ff73f5f43d032c3da3c534c517f661e8dfeb358aaffected24835e442f289813aa568d142a755672a740503c to < 66b1b309886337745d395bbc158440ab196305ceaffected24835e442f289813aa568d142a755672a740503c to < e6195b941fdc8d81fc431c9f25539cf6c6234b51affected24835e442f289813aa568d142a755672a740503c to < 4d4be202165e832d74849b4a68e289a2a377039caffectedc75fe7899538890109aad7bbf92b2f304389e825affected2a3241044b1c4ecc13f73b7158881881fb7534a1affected4.9.19 to < 4.10affected4.10.7 to < 4.11affected
Linux Linux
Default version status: affected
4.11affected0 to < 4.11unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.110 to ≤ 6.12.*unaffected6.18.51 to ≤ 6.18.*unaffected7.2.5 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/c5517b71101f61a45144e3cf77a19626355272de ↗
- https://git.kernel.org/stable/c/866a04137dac7e82a3848851061ff7ed15c2847e ↗
- https://git.kernel.org/stable/c/6a6a7aae4681a20cd32789fea9a487aaafa0e7a3 ↗
- https://git.kernel.org/stable/c/e2f27b5ed9084feb7bae9ef2bc80de37c92280b1 ↗
- https://git.kernel.org/stable/c/ff73f5f43d032c3da3c534c517f661e8dfeb358a ↗
- https://git.kernel.org/stable/c/66b1b309886337745d395bbc158440ab196305ce ↗
- https://git.kernel.org/stable/c/e6195b941fdc8d81fc431c9f25539cf6c6234b51 ↗
- https://git.kernel.org/stable/c/4d4be202165e832d74849b4a68e289a2a377039c ↗