Linux: virtio_console: do not free control-out buffers on remove
What fixes it
- 8f6cfc3eca79b8e108d0823756101e2f4f9d811fLinuxCVE List
- 2e40c69b9c3448b9c6609cd02013da593b2e123bLinuxCVE List
- 177ee901aa2bab02e7f1f8edbb814fd5e386ed62LinuxCVE List
- 894f98e73983f37354214a89a3a7fd35bf9e3072LinuxCVE List
- 3.17LinuxCVE List
- 3.19LinuxCVE List
Show all 11 fixed versions
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
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.
Text from CVE List
Affected versions 32
- Linuxaffected: a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b before b1f39c2a676698cc64c8e105e08b25111a112ec6CVE List
- Linuxaffected: a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b before e03522a990cd2e0f1a736eaa349a9df9ab8541c3CVE List
- Linuxaffected: a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b before 8f6cfc3eca79b8e108d0823756101e2f4f9d811fCVE List
- Linuxaffected: a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b before 2e40c69b9c3448b9c6609cd02013da593b2e123bCVE List
- Linuxaffected: a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b before 177ee901aa2bab02e7f1f8edbb814fd5e386ed62CVE List
- Linuxaffected: a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b before a80c33488e0bbe642ed803b13a4ac8078a70b507CVE List
- Linuxaffected: a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b before f620c40ea6862feed84deb105568b21ec53a7830CVE List
- Linuxaffected: a7a69ec0d8e4a58be7db88d33cbfa2912807bb2b before 894f98e73983f37354214a89a3a7fd35bf9e3072CVE List
- Linuxaffected: f92b16b815efe8207090a9b5a767618fd89542caCVE List
- Linuxaffected: d2bbfac82b7942afc5d8e564d7087835280df495CVE List
- Linuxaffected: a88e13d9a092fbb772d380944b44eb549ef131feCVE List
- Linuxaffected: dd807a784fd36f4136516d5858efb6473dda422cCVE List
- Linuxaffected: 47cb14192bcbba3f15b1c3561e05e084e56fdef6CVE List
- Linuxaffected: 6b1c41a0f7183702abb7a104c6c7e196ad69a6b3CVE List
- Linuxaffected: 9037306163a6ba5587e4b5ca511ac7be4fb7295bCVE List
- Linuxaffected: 3.16.60 before 3.17CVE List
- Linuxaffected: 3.18.108 before 3.19CVE List
- Linuxaffected: 4.1.52 before 4.2CVE List
- Linuxaffected: 4.4.131 before 4.5CVE List
- Linuxaffected: 4.9.98 before 4.10CVE List
- Linuxaffected: 4.14.39 before 4.15CVE List
- Linuxaffected: 4.16.7 before 4.17CVE List
- Linuxaffected: 4.17CVE List
- Linuxunaffected: all versions before 4.17CVE List
- Linuxunaffected: 5.10.271 through 5.10.*CVE List
- Linuxunaffected: 5.15.222 through 5.15.*CVE List
- Linuxunaffected: 6.1.189 through 6.1.*CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.111 through 6.12.*CVE List
- Linuxunaffected: 6.18.53 through 6.18.*CVE List
- Linuxunaffected: 7.2.7 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 8
- git.kernel.org/stable/c/b1f39c2a676698cc64c8e105e08b25111a112ec6Referencevia CVE List
- git.kernel.org/stable/c/e03522a990cd2e0f1a736eaa349a9df9ab8541c3Referencevia CVE List
- git.kernel.org/stable/c/8f6cfc3eca79b8e108d0823756101e2f4f9d811fReferencevia CVE List
- git.kernel.org/stable/c/2e40c69b9c3448b9c6609cd02013da593b2e123bReferencevia CVE List
- git.kernel.org/stable/c/177ee901aa2bab02e7f1f8edbb814fd5e386ed62Referencevia CVE List
- git.kernel.org/stable/c/a80c33488e0bbe642ed803b13a4ac8078a70b507Referencevia CVE List
- git.kernel.org/stable/c/f620c40ea6862feed84deb105568b21ec53a7830Referencevia CVE List
- git.kernel.org/stable/c/894f98e73983f37354214a89a3a7fd35bf9e3072Referencevia CVE List