{"id":"CVE-2026-89887","summary":"media: i2c: ov7740: fix use-after-destroy in remove","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nmedia: i2c: ov7740: fix use-after-destroy in remove\n\nThe ov7740_remove() function had a severe teardown order bug where it\ndestroyed the driver's mutex before freeing the V4L2 control handler\nwhich relies on that mutex, leading to a use-after-destroy kernel panic.\nFurthermore, the driver explicitly called v4l2_ctrl_handler_free() and\nmutex_destroy() sequentially, but then called ov7740_free_controls()\nwhich invokes both of them a second time, resulting in a double-free.\n\nThis patch fixes the issue by unregistering the subdevice first, and\nrelying exclusively on ov7740_free_controls() to safely tear down the\nmutex and control handler in the correct order.","modified":"2026-09-18T03:48:33.849940656Z","published":"2026-09-16T10:31:51.195Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89887.json","cna_assigner":"Linux"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/09453b467990e8ef8fe09f45a685f9a625248d33"},{"type":"WEB","url":"https://git.kernel.org/stable/c/25e2505866c577db2661e4d431f0907c6ec9a3b4"},{"type":"WEB","url":"https://git.kernel.org/stable/c/5d1b3dea5a44124bab6c14a2d71b977dabed54e7"},{"type":"WEB","url":"https://git.kernel.org/stable/c/7512838a19af0a284a58435292243fad21e57ff1"},{"type":"WEB","url":"https://git.kernel.org/stable/c/81e9765878d3ac8ad18e3a683332b5d6bc3a0e33"},{"type":"WEB","url":"https://git.kernel.org/stable/c/8a02ee6c1c4e88f3a0442bd60d3c77db9a30db5e"},{"type":"WEB","url":"https://git.kernel.org/stable/c/9e4693436c7dcf8584002500ce4b434b79bbf9ed"},{"type":"WEB","url":"https://git.kernel.org/stable/c/af81f35e4f429e769b784754e1aa4d7a922470ac"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89887.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89887"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"39c5c4471b8d793daf868bd004e56ed420e89707"},{"fixed":"9e4693436c7dcf8584002500ce4b434b79bbf9ed"},{"fixed":"81e9765878d3ac8ad18e3a683332b5d6bc3a0e33"},{"fixed":"8a02ee6c1c4e88f3a0442bd60d3c77db9a30db5e"},{"fixed":"7512838a19af0a284a58435292243fad21e57ff1"},{"fixed":"25e2505866c577db2661e4d431f0907c6ec9a3b4"},{"fixed":"af81f35e4f429e769b784754e1aa4d7a922470ac"},{"fixed":"09453b467990e8ef8fe09f45a685f9a625248d33"},{"fixed":"5d1b3dea5a44124bab6c14a2d71b977dabed54e7"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89887.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.16.0"},{"fixed":"5.10.270"}]},{"type":"ECOSYSTEM","events":[{"introduced":"5.11.0"},{"fixed":"5.15.221"}]},{"type":"ECOSYSTEM","events":[{"introduced":"5.16.0"},{"fixed":"6.1.188"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.2.0"},{"fixed":"6.6.157"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.7.0"},{"fixed":"6.12.110"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.51"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.2.5"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89887.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}]}