CVE-2026-68205: media: v4l2-fwnode: Fix subdev owner overwritten in v4l2_async_register_subdev_sensor()
Greg Kroah-Hartman <[email protected]>
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026081012-CVE-2026-68205-bbbc@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: media: v4l2-fwnode: Fix subdev owner overwritten in v4l2_async_register_subdev_sensor() The v4l2 helper v4l2_async_register_subdev_sensor() calls v4l2_async_register_subdev(), which is a macro that expands to __v4l2_async_register_subdev(sd,THIS_MODULE). Since the macro is expanded inside v4l2-fwnode.c, THIS_MODULE resolves to the v4l2-fwnode module rather than the sensor driver module that originally set sd->owner. When v4l2-fwnode is built-in, THIS_MODULE evaluates to NULL, which then overwrites the sensor driver's owner with NULL. This causes the problem that the sensor module's reference count is never incremented during async registration, so the module can be removed while the subdevice is still in use by a notifier (e.g., a CSI-2 receiver bridge driver). Fix this by renaming v4l2_async_register_subdev_sensor() to __v4l2_async_register_subdev_sensor() with an added explicit module argument and introducing a wrapper macro: #define v4l2_async_register_subdev_sensor(sd) \ __v4l2_async_register_subdev_sensor(sd, THIS_MODULE) This ensures the sensor driver module is properly referenced even when the sensor driver does not init the owner field before calling v4l2_async_register_subdev_sensor() and prevents premature module removal. The Linux kernel CVE team has assigned CVE-2026-68205 to this issue. Affected and fixed versions =========================== Issue introduced in 4.15 with commit aef69d54755d45edefbf347a51efd1673d7daed9 and fixed in 6.6.151 with commit 47ef04cd13d38010b580056a9d8840aaab944841 Issue introduced in 4.15 with commit aef69d54755d45edefbf347a51efd1673d7daed9 and fixed in 6.12.101 with commit caea6bc68c925d63ca33d21b2255f47181943d61 Issue introduced in 4.15 with commit aef69d54755d45edefbf347a51efd1673d7daed9 and fixed in 6.18.42 with commit cf9732fd6c4f2f803ccfc46d89489b6635590270 Issue introduced in 4.15 with commit aef69d54755d45edefbf347a51efd1673d7daed9 and fixed in 7.1.6 with commit 067887ff93fddbb3a3fb84c900bc654ecfe5ba61 Issue introduced in 4.15 with commit aef69d54755d45edefbf347a51efd1673d7daed9 and fixed in 7.2-rc1 with commit 06cb687a5132fcffe624c0070576ab852ac6b568 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-2026-68205 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/v4l2-core/v4l2-fwnode.c include/media/v4l2-async.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/47ef04cd13d38010b580056a9d8840aaab944841 https://git.kernel.org/stable/c/caea6bc68c925d63ca33d21b2255f47181943d61 https://git.kernel.org/stable/c/cf9732fd6c4f2f803ccfc46d89489b6635590270 https://git.kernel.org/stable/c/067887ff93fddbb3a3fb84c900bc654ecfe5ba61 https://git.kernel.org/stable/c/06cb687a5132fcffe624c0070576ab852ac6b568