CVE-2026-97995
N/A
Summary
In the Linux kernel, the following vulnerability has been resolved:
virtio_console: do not free control-out buffers on remove
__send_control_msg() publishes &portdev->cpkt as the control-out virtqueue cookie. remove_vqs() walks every virtqueue and passes leftover cookies to free_buf(), which treats them as struct port_buffer and reads sgpages.
If a control message is still on c_ovq when the device is unbound, free_buf() reads past the ports_device object.
KASAN reported slab-out-of-bounds in free_buf():
free_buf
remove_vqs
virtcons_remove
unbind_store
The object was the ports_device allocated in virtcons_probe().
Drain c_ovq without freeing. The packet lives in portdev and is released with it.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b < 177ee901aa2bab02e7f1f8edbb814fd5e386ed62 | affected |
| Linux | Linux | a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b < a80c33488e0bbe642ed803b13a4ac8078a70b507 | affected |
| Linux | Linux | a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b < f620c40ea6862feed84deb105568b21ec53a7830 | affected |
| Linux | Linux | a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b < 894f98e73983f37354214a89a3a7fd35bf9e3072 | affected |
| Linux | Linux | f92b16b815efe8207090a9b5a767618fd89542ca | affected |
| Linux | Linux | d2bbfac82b7942afc5d8e564d7087835280df495 | affected |
| Linux | Linux | a88e13d9a092fbb772d380944b44eb549ef131fe | affected |
| Linux | Linux | dd807a784fd36f4136516d5858efb6473dda422c | affected |
| Linux | Linux | 47cb14192bcbba3f15b1c3561e05e084e56fdef6 | affected |
| Linux | Linux | 6b1c41a0f7183702abb7a104c6c7e196ad69a6b3 | affected |
| Linux | Linux | 9037306163a6ba5587e4b5ca511ac7be4fb7295b | affected |
| Linux | Linux | 3.16.60 < 3.17 | affected |
| Linux | Linux | 3.18.108 < 3.19 | affected |
| Linux | Linux | 4.1.52 < 4.2 | affected |
| Linux | Linux | 4.4.131 < 4.5 | affected |
| Linux | Linux | 4.9.98 < 4.10 | affected |
| Linux | Linux | 4.14.39 < 4.15 | affected |
| Linux | Linux | 4.16.7 < 4.17 | affected |
| Linux | Linux | 4.17 | affected |
| Linux | Linux | 0 < 4.17 | unaffected |
| Linux | Linux | 6.12.111 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.53 <= 6.18.* | unaffected |
| Linux | Linux | 7.2.7 <= 7.2.* | unaffected |
| Linux | Linux | 7.3-rc3 <= * | unaffected |
Weaknesses
References
- 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
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.