REDHAT-BUG-560887: Medium severity KVM KVM vulnerability
Description of problem: When execute the command: cat /dev/port in the guest, the host hang immediately (General Protection Fault).
Version-Release number of selected component (if applicable): kvm-83-140.el5 kmod-kvm-83-140.el5 kvm-qemu-img-83-140.el5 2.6.18-182.el5
How reproducible: 100%
Steps to Reproduce: 1. boot the virtual machine 2. type cat /dev/port in the guest 3.
Actual results: Host hang
Expected results: Guest should display the information about virtual devices normally.
Additional info: 1 qemu-kvm command: /home/devel/autotest/client/tests/kvm/qemu -name vm1 -monitor tcp:0:6001,server,nowait -drive file=/home/devel/autotest/client/tests/kvm/images/RHEL-Server-5.4-64.qcow2,if=ide,boot=on -net nic,vlan=0,model=e1000,macaddr=00:9B:81:0E:91:01 -net tap,vlan=0,ifname=e100006001,script=/home/devel/autotest/client/tests/kvm/scripts/qemu-ifup-switch,downscript=no -m 512 -smp 1 -usbdevice tablet -rtc-td-hack -no-hpet -cpu qemu64,+sse2 -no-kvm-pit-reinjection -vnc :0 2 could be reproduced in kvm-83-142 & 2.6.18.183.el5
Re-tested:
Host \ Guest | 2.6.18.182 | 2.6.33-rc4 | --------------+----------------+-------------- 2.6.18.185el5 | FAIL | FAIL | --------------+----------------+-------------- 2.6.33-rc4 | PASS | PASS | --------------+----------------+--------------
bt from kernel crash dump: [root@localhost 2010-01-27-03:10]# gdb /usr/lib/debug/lib/modules/2.6.18-185.el5debug/vmlinux ./vmcore GNU gdb Fedora (6.8-37.el5) Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x8664-redhat-linux-gnu"... [New process 32372] [New process 0] #0 0xffffffff8002202b in sysmprotect (start=18446604440097613992, len=18446604435883844864, prot=18446744071700444726) at mm/mprotect.c:250 250 prot |= PROTEXEC; (gdb) bt #0 0xffffffff8002202b in sysmprotect (start=18446604440097613992, len=18446604435883844864, prot=18446744071700444726) at mm/mprotect.c:250 #1 0x0000000000001000 in ?? ()
As malicious user could use this method to do the attack, move the priority and severity to urgent.
Affected Software
Event History
Frequently Asked Questions
What level of access is needed to trigger the issue?
The triggering action is execution of "cat /dev/port" inside a running guest virtual machine. The report does not indicate that host-side command access is required.
Which tested environments showed the failure?
The issue was reported with kvm-83-140.el5, kmod-kvm-83-140.el5, kvm-qemu-img-83-140.el5, and host kernel 2.6.18-182.el5. It was also reproduced with kvm-83-142 and kernel 2.6.18.183.el5; testing recorded failures on a 2.6.18.185el5 host with both 2.6.18.182 and 2.6.33-rc4 guests.
How can an administrator determine whether a system is affected?
The reported reproducer is to boot a guest and run "cat /dev/port" in it; affected hosts hung immediately with a General Protection Fault. Because the observed result is a host hang, this should only be attempted in an environment where disrupting the host is acceptable.