{"id":"CVE-2026-97986","revision":"e34b2eade20d494ea02603c78343793d","records":[{"revision":"e34b2eade20d494ea02603c78343793d","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-97986","aliases":[],"title":"virtio_input: stop callbacks before unregistering input device","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nvirtio_input: stop callbacks before unregistering input device\n\nvirtinput_remove() unregisters the input device before resetting the\nvirtio device. virtinput_recv_events() drops vi->lock around input_event(),\nso clearing vi->ready does not stop a callback that passed the entry check.\nIt can still use vi->idev, requeue buffers and kick the queue.\n\nReset first, as virtinput_freeze() already does. With the preceding core\nchange, reset waits for callbacks before input_unregister_device() can\nfree vi->idev. Recheck vi->ready after taking the lock again: keep draining\ncompleted events so an input packet is not truncated, but stop requeueing\nbuffers and kicking the queue.\n\nWith evdev attached, input_unregister_handle() currently waits for an RCU\ngrace period, which also waits out IRQ callbacks. This masks the lifetime\nbug on PCI and MMIO, but does not protect sleepable callbacks on other\ntransports.","state":0,"publishedAt":"2026-09-25T10:23:20.801+00:00","modifiedAt":"2026-10-19T09:11:53.304+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/virtio/virtio_input.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"271c865161c57cfabca45b93eaa712b19da365bc\",\n                            \"lessThan\": \"3ae729b1f8ab81d1244061872db2fb0ebb110d2a\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"271c865161c57cfabca45b93eaa712b19da365bc\",\n                            \"lessThan\": \"81073bca2062c916c818f2744fbab545a5c4982b\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"271c865161c57cfabca45b93eaa712b19da365bc\",\n                            \"lessThan\": \"8226aeee9b9a94cd699fbb51cb230feff46cfaf2\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"271c865161c57cfabca45b93eaa712b19da365bc\",\n                            \"lessThan\": \"a3ba86a270dd87460759214046dc7cbd409ac711\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"271c865161c57cfabca45b93eaa712b19da365bc\",\n                            \"lessThan\": \"5378f7945856a5ed88e6f9850bc7a68f54090135\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"271c865161c57cfabca45b93eaa712b19da365bc\",\n                            \"lessThan\": \"d7808b37da0a619cf1fa541c2384e783fecc2480\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/virtio/virtio_input.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"4.1\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"4.1\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.189\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.158\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.111\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.53\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.7\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["https://git.kernel.org/stable/c/3ae729b1f8ab81d1244061872db2fb0ebb110d2a","https://git.kernel.org/stable/c/81073bca2062c916c818f2744fbab545a5c4982b","https://git.kernel.org/stable/c/8226aeee9b9a94cd699fbb51cb230feff46cfaf2","https://git.kernel.org/stable/c/a3ba86a270dd87460759214046dc7cbd409ac711","https://git.kernel.org/stable/c/5378f7945856a5ed88e6f9850bc7a68f54090135","https://git.kernel.org/stable/c/d7808b37da0a619cf1fa541c2384e783fecc2480"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-97986","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-97986","identifiers":["CVE-2026-97986"]},"retained":false,"historicalAffected":[]}],"coverage":[]}