| 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-58002: media: uvcvideo: Remove dangling pointers |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| media: uvcvideo: Remove dangling pointers |
| |
| When an async control is written, we copy a pointer to the file handle |
| that started the operation. That pointer will be used when the device is |
| done. Which could be anytime in the future. |
| |
| If the user closes that file descriptor, its structure will be freed, |
| and there will be one dangling pointer per pending async control, that |
| the driver will try to use. |
| |
| Clean all the dangling pointers during release(). |
| |
| To avoid adding a performance penalty in the most common case (no async |
| operation), a counter has been introduced with some logic to make sure |
| that it is properly handled. |
| |
| The Linux kernel CVE team has assigned CVE-2024-58002 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 4.19 with commit e5225c820c057537dc780244760e2e24c7d27366 and fixed in 5.4.291 with commit 2a29413ace64627e178fd422dd8a5d95219a2c0b |
| Issue introduced in 4.19 with commit e5225c820c057537dc780244760e2e24c7d27366 and fixed in 5.10.235 with commit 653993f46861f2971e95e9a0e36a34b49dec542c |
| Issue introduced in 4.19 with commit e5225c820c057537dc780244760e2e24c7d27366 and fixed in 5.15.179 with commit 117f7a2975baa4b7d702d3f4830d5a4ebd0c6d50 |
| Issue introduced in 4.19 with commit e5225c820c057537dc780244760e2e24c7d27366 and fixed in 6.1.130 with commit ac18d781466252cd35a3e311e0a4b264260fd927 |
| Issue introduced in 4.19 with commit e5225c820c057537dc780244760e2e24c7d27366 and fixed in 6.6.80 with commit 4dbaa738c583a0e947803c69e8996e88cf98d971 |
| Issue introduced in 4.19 with commit e5225c820c057537dc780244760e2e24c7d27366 and fixed in 6.12.14 with commit 438bda062b2c40ddd7df23b932e29ffe0a448cac |
| Issue introduced in 4.19 with commit e5225c820c057537dc780244760e2e24c7d27366 and fixed in 6.13.3 with commit 9edc7d25f7e49c33a1ce7a5ffadea2222065516c |
| Issue introduced in 4.19 with commit e5225c820c057537dc780244760e2e24c7d27366 and fixed in 6.14 with commit 221cd51efe4565501a3dbf04cc011b537dcce7fb |
| |
| 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-58002 |
| 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/media/usb/uvc/uvc_ctrl.c |
| drivers/media/usb/uvc/uvc_v4l2.c |
| drivers/media/usb/uvc/uvcvideo.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/2a29413ace64627e178fd422dd8a5d95219a2c0b |
| https://git.kernel.org/stable/c/653993f46861f2971e95e9a0e36a34b49dec542c |
| https://git.kernel.org/stable/c/117f7a2975baa4b7d702d3f4830d5a4ebd0c6d50 |
| https://git.kernel.org/stable/c/ac18d781466252cd35a3e311e0a4b264260fd927 |
| https://git.kernel.org/stable/c/4dbaa738c583a0e947803c69e8996e88cf98d971 |
| https://git.kernel.org/stable/c/438bda062b2c40ddd7df23b932e29ffe0a448cac |
| https://git.kernel.org/stable/c/9edc7d25f7e49c33a1ce7a5ffadea2222065516c |
| https://git.kernel.org/stable/c/221cd51efe4565501a3dbf04cc011b537dcce7fb |