{"id":"CVE-2026-97995","state":"PUBLISHED","title":"virtio_console: do not free control-out buffers on remove","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nvirtio_console: do not free control-out buffers on remove\n\n__send_control_msg() publishes &portdev->cpkt as the control-out\nvirtqueue cookie. remove_vqs() walks every virtqueue and passes leftover\ncookies to free_buf(), which treats them as struct port_buffer and\nreads sgpages.\n\nIf a control message is still on c_ovq when the device is unbound,\nfree_buf() reads past the ports_device object.\n\nKASAN reported slab-out-of-bounds in free_buf():\n\n\tfree_buf\n\tremove_vqs\n\tvirtcons_remove\n\tunbind_store\n\nThe object was the ports_device allocated in virtcons_probe().\n\nDrain c_ovq without freeing. The packet lives in portdev and is released\nwith it.","publishedAt":"2026-09-25T10:23:26.307Z","updatedAt":"2026-10-19T09:12:02.162Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"b1f39c2a676698cc64c8e105e08b25111a112ec6","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"e03522a990cd2e0f1a736eaa349a9df9ab8541c3","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"8f6cfc3eca79b8e108d0823756101e2f4f9d811f","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"2e40c69b9c3448b9c6609cd02013da593b2e123b","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"177ee901aa2bab02e7f1f8edbb814fd5e386ed62","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"a80c33488e0bbe642ed803b13a4ac8078a70b507","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"f620c40ea6862feed84deb105568b21ec53a7830","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"894f98e73983f37354214a89a3a7fd35bf9e3072","versionType":"git"},{"version":"f92b16b815efe8207090a9b5a767618fd89542ca","status":"affected","versionType":"git"},{"version":"d2bbfac82b7942afc5d8e564d7087835280df495","status":"affected","versionType":"git"},{"version":"a88e13d9a092fbb772d380944b44eb549ef131fe","status":"affected","versionType":"git"},{"version":"dd807a784fd36f4136516d5858efb6473dda422c","status":"affected","versionType":"git"},{"version":"47cb14192bcbba3f15b1c3561e05e084e56fdef6","status":"affected","versionType":"git"},{"version":"6b1c41a0f7183702abb7a104c6c7e196ad69a6b3","status":"affected","versionType":"git"},{"version":"9037306163a6ba5587e4b5ca511ac7be4fb7295b","status":"affected","versionType":"git"},{"version":"3.16.60","status":"affected","lessThan":"3.17","versionType":"semver"},{"version":"3.18.108","status":"affected","lessThan":"3.19","versionType":"semver"},{"version":"4.1.52","status":"affected","lessThan":"4.2","versionType":"semver"},{"version":"4.4.131","status":"affected","lessThan":"4.5","versionType":"semver"},{"version":"4.9.98","status":"affected","lessThan":"4.10","versionType":"semver"},{"version":"4.14.39","status":"affected","lessThan":"4.15","versionType":"semver"},{"version":"4.16.7","status":"affected","lessThan":"4.17","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/char/virtio_console.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.17","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.17","versionType":"semver"},{"version":"5.10.271","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.222","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.189","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.158","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.111","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.53","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.7","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/char/virtio_console.c"]}],"references":["https://git.kernel.org/stable/c/b1f39c2a676698cc64c8e105e08b25111a112ec6","https://git.kernel.org/stable/c/e03522a990cd2e0f1a736eaa349a9df9ab8541c3","https://git.kernel.org/stable/c/8f6cfc3eca79b8e108d0823756101e2f4f9d811f","https://git.kernel.org/stable/c/2e40c69b9c3448b9c6609cd02013da593b2e123b","https://git.kernel.org/stable/c/177ee901aa2bab02e7f1f8edbb814fd5e386ed62","https://git.kernel.org/stable/c/a80c33488e0bbe642ed803b13a4ac8078a70b507","https://git.kernel.org/stable/c/f620c40ea6862feed84deb105568b21ec53a7830","https://git.kernel.org/stable/c/894f98e73983f37354214a89a3a7fd35bf9e3072"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:43.249Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/97xxx/CVE-2026-97995.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-97995","state":"PUBLISHED","datePublished":"2026-09-25T10:23:26.307Z","dateUpdated":"2026-10-19T09:12:02.162Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-09-25T10:18:58.209Z"},"containers":{"cna":{"title":"virtio_console: do not free control-out buffers on remove","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nvirtio_console: do not free control-out buffers on remove\n\n__send_control_msg() publishes &portdev->cpkt as the control-out\nvirtqueue cookie. remove_vqs() walks every virtqueue and passes leftover\ncookies to free_buf(), which treats them as struct port_buffer and\nreads sgpages.\n\nIf a control message is still on c_ovq when the device is unbound,\nfree_buf() reads past the ports_device object.\n\nKASAN reported slab-out-of-bounds in free_buf():\n\n\tfree_buf\n\tremove_vqs\n\tvirtcons_remove\n\tunbind_store\n\nThe object was the ports_device allocated in virtcons_probe().\n\nDrain c_ovq without freeing. The packet lives in portdev and is released\nwith it."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"b1f39c2a676698cc64c8e105e08b25111a112ec6","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"e03522a990cd2e0f1a736eaa349a9df9ab8541c3","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"8f6cfc3eca79b8e108d0823756101e2f4f9d811f","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"2e40c69b9c3448b9c6609cd02013da593b2e123b","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"177ee901aa2bab02e7f1f8edbb814fd5e386ed62","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"a80c33488e0bbe642ed803b13a4ac8078a70b507","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"f620c40ea6862feed84deb105568b21ec53a7830","versionType":"git"},{"version":"a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b","status":"affected","lessThan":"894f98e73983f37354214a89a3a7fd35bf9e3072","versionType":"git"},{"version":"f92b16b815efe8207090a9b5a767618fd89542ca","status":"affected","versionType":"git"},{"version":"d2bbfac82b7942afc5d8e564d7087835280df495","status":"affected","versionType":"git"},{"version":"a88e13d9a092fbb772d380944b44eb549ef131fe","status":"affected","versionType":"git"},{"version":"dd807a784fd36f4136516d5858efb6473dda422c","status":"affected","versionType":"git"},{"version":"47cb14192bcbba3f15b1c3561e05e084e56fdef6","status":"affected","versionType":"git"},{"version":"6b1c41a0f7183702abb7a104c6c7e196ad69a6b3","status":"affected","versionType":"git"},{"version":"9037306163a6ba5587e4b5ca511ac7be4fb7295b","status":"affected","versionType":"git"},{"version":"3.16.60","status":"affected","lessThan":"3.17","versionType":"semver"},{"version":"3.18.108","status":"affected","lessThan":"3.19","versionType":"semver"},{"version":"4.1.52","status":"affected","lessThan":"4.2","versionType":"semver"},{"version":"4.4.131","status":"affected","lessThan":"4.5","versionType":"semver"},{"version":"4.9.98","status":"affected","lessThan":"4.10","versionType":"semver"},{"version":"4.14.39","status":"affected","lessThan":"4.15","versionType":"semver"},{"version":"4.16.7","status":"affected","lessThan":"4.17","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/char/virtio_console.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.17","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.17","versionType":"semver"},{"version":"5.10.271","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.222","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.189","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.158","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.111","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.53","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.7","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/char/virtio_console.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/b1f39c2a676698cc64c8e105e08b25111a112ec6"},{"url":"https://git.kernel.org/stable/c/e03522a990cd2e0f1a736eaa349a9df9ab8541c3"},{"url":"https://git.kernel.org/stable/c/8f6cfc3eca79b8e108d0823756101e2f4f9d811f"},{"url":"https://git.kernel.org/stable/c/2e40c69b9c3448b9c6609cd02013da593b2e123b"},{"url":"https://git.kernel.org/stable/c/177ee901aa2bab02e7f1f8edbb814fd5e386ed62"},{"url":"https://git.kernel.org/stable/c/a80c33488e0bbe642ed803b13a4ac8078a70b507"},{"url":"https://git.kernel.org/stable/c/f620c40ea6862feed84deb105568b21ec53a7830"},{"url":"https://git.kernel.org/stable/c/894f98e73983f37354214a89a3a7fd35bf9e3072"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T09:12:02.162Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.17","versionEndExcluding":"5.10.271"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.17","versionEndExcluding":"5.15.222"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.17","versionEndExcluding":"6.1.189"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.17","versionEndExcluding":"6.6.158"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.17","versionEndExcluding":"6.12.111"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.17","versionEndExcluding":"6.18.53"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.17","versionEndExcluding":"7.2.7"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.17","versionEndExcluding":"7.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.16.60"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18.108"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.1.52"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.4.131"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9.98"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14.39"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.16.7"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}