Fix a problem where dhclient(8) utility tries to initilaize an fxp(4) forever because the driver resets the controller chip twice upon initialization. [EN-13:01] Fix a problem where frames sent to additional MAC addresses are not forwarded to the vtnet(4) interface. [EN-13:02]
149 lines
5 KiB
Text
149 lines
5 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
Hash: SHA1
|
|
|
|
=============================================================================
|
|
FreeBSD-EN-13:02.vtnet Errata Notice
|
|
The FreeBSD Project
|
|
|
|
Topic: vtnet(4) network interface issue on QEMU 1.4.0 and later
|
|
|
|
Category: core
|
|
Modules: sys_dev
|
|
Announced: 2013-06-28
|
|
Credits: Julian Stecklina and Bryan Venteicher
|
|
Affects: FreeBSD 8.4
|
|
Corrected: 2013-06-15 03:55:04 UTC (head, 10.0-CURRENT)
|
|
2013-06-25 04:42:16 UTC (stable/9, 9.1-STABLE)
|
|
2013-06-25 04:42:43 UTC (stable/8, 8.4-STABLE)
|
|
2013-06-28 05:21:59 UTC (releng/8.4, 8.4-RELEASE-p2)
|
|
|
|
For general information regarding FreeBSD Errata Notices and Security
|
|
Advisories, including descriptions of the fields above, security
|
|
branches, and the following sections, please visit
|
|
<URL:http://security.freebsd.org/>.
|
|
|
|
I. Background
|
|
|
|
VirtIO is a specification for para-virtualized I/O in a virtual
|
|
machine. The vtnet(4) network interface driver supports VirtIO
|
|
emulated Ethernet device.
|
|
|
|
QEMU is a generic and open source machine emulator and virtualizer.
|
|
It is included as a third-party package in FreeBSD Ports Collection
|
|
(emulators/qemu).
|
|
|
|
II. Problem Description
|
|
|
|
The vtnet(4) network interface driver displays the following message
|
|
upon configuration when using QEMU 1.4.0 or later:
|
|
|
|
vtnet0: error setting host MAC filter table
|
|
|
|
The interface works normally when the interface has one MAC address.
|
|
However, if it has two or more MAC addresses configured, frames to
|
|
those additional MAC addresses are not forwarded to the vtnet(4)
|
|
interface. Thus, only the first MAC address works.
|
|
|
|
III. Impact
|
|
|
|
A vtnet(4) network interface with two or more MAC addresses configured
|
|
on it cannot receive frames to the addresses except for the first one
|
|
when the FreeBSD kernel is running on QEMU 1.4.0 or later. For the
|
|
first MAC address, the vtnet(4) interface works without problem even
|
|
though the error message is displayed.
|
|
|
|
The vtnet(4) driver is included in GENERIC kernel in FreeBSD
|
|
8.4-RELEASE.
|
|
|
|
IV. Workaround
|
|
|
|
The additional MAC addresses can work by setting the vtnet(4) network
|
|
interface in promiscuous mode. The following command sets vtnet0 in
|
|
promiscuous mode:
|
|
|
|
# ifconfig vtnet0 promisc
|
|
|
|
Note that this may lead to performance degradation.
|
|
|
|
Or, the fixed version of the vtnet(4) driver can be installed as
|
|
kernel module by using the Ports Collection (emulators/virtio-kmod).
|
|
To use it on 8.4-RELEASE, the GENERIC kernel has to be recompiled by
|
|
removing all of the virtio(4) drivers before installing
|
|
emulators/virtio-kmod. The following lines in kernel configuration
|
|
file disable the drivers:
|
|
|
|
nodevice virtio
|
|
nodevice virtio_pci
|
|
nodevice vtnet
|
|
nodevice virtio_blk
|
|
nodevice virtio_scsi
|
|
nodevice virtio_balloon
|
|
|
|
After recompilation and installing the new kernel and
|
|
emulators/virtio-kmod, add the following lines to /boot/loader.conf.
|
|
This enables the drivers by loading kernel modules which are installed
|
|
by emulators/virtio-kmod at boot time.
|
|
|
|
virtio_load="YES"
|
|
virtio_pci_load="YES"
|
|
virtio_blk_load="YES"
|
|
if_vtnet_load="YES"
|
|
virtio_balloon_load="YES"
|
|
|
|
V. Solution
|
|
|
|
Perform one of the following:
|
|
|
|
1) Upgrade your system to 8-STABLE, or 9-STABLE, or to the releng/8.4
|
|
security branch dated after the correction date.
|
|
|
|
2) To patch your present system:
|
|
|
|
The following patches have been verified to apply to FreeBSD 8.4 systems.
|
|
|
|
a) Download the relevant patch from the location below, and verify the
|
|
detached PGP signature using your PGP utility.
|
|
|
|
# fetch http://security.FreeBSD.org/patches/EN-13:02/vtnet.patch
|
|
# fetch http://security.FreeBSD.org/patches/EN-13:02/vtnet.patch.asc
|
|
|
|
b) Apply the patch.
|
|
|
|
# cd /usr/src
|
|
# patch < /path/to/patch
|
|
|
|
c) Recompile your kernel as described in
|
|
<URL:http://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the
|
|
system.
|
|
|
|
3) To update your vulnerable system via a binary patch:
|
|
|
|
Systems running 8.4-RELEASE on the i386 or amd64 platforms can be updated
|
|
via the freebsd-update(8) utility:
|
|
|
|
# freebsd-update fetch
|
|
# freebsd-update install
|
|
|
|
VI. Correction details
|
|
|
|
The following list contains the revision numbers of each file that was
|
|
corrected in FreeBSD.
|
|
|
|
Branch/path Revision
|
|
- -------------------------------------------------------------------------
|
|
head r251769
|
|
stable/9/ r252193
|
|
stable/8/ r252194
|
|
releng/8.4/ r252334
|
|
- -------------------------------------------------------------------------
|
|
|
|
VII. References
|
|
|
|
The latest revision of this Errata Notice is available at
|
|
http://security.FreeBSD.org/advisories/FreeBSD-EN-13:02.vtnet.asc
|
|
-----BEGIN PGP SIGNATURE-----
|
|
|
|
iEYEARECAAYFAlHNI4MACgkQFdaIBMps37L8DACfVzTAigMRbtT38pltWZ23IFUw
|
|
O3kAn0R36RIBdh45I+g/BPzjTimKMPza
|
|
=8wlc
|
|
-----END PGP SIGNATURE-----
|