mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-24 12:09:58 +00:00
eea750a562
CVE-2013-4150 QEMU 1.5.0 out-of-bounds buffer write in virtio_net_load()@hw/net/virtio-net.c This code is in hw/net/virtio-net.c: if (n->max_queues > 1) { if (n->max_queues != qemu_get_be16(f)) { error_report("virtio-net: different max_queues "); return -1; } n->curr_queues = qemu_get_be16(f); for (i = 1; i < n->curr_queues; i++) { n->vqs[i].tx_waiting = qemu_get_be32(f); } } Number of vqs is max_queues, so if we get invalid input here, for example if max_queues = 2, curr_queues = 3, we get write beyond end of the buffer, with data that comes from wire. This might be used to corrupt qemu memory in hard to predict ways. Since we have lots of function pointers around, RCE might be possible. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Juan Quintela <quintela@redhat.com> |
||
---|---|---|
.. | ||
fsl_etsec | ||
allwinner_emac.c | ||
cadence_gem.c | ||
dp8393x.c | ||
e1000_regs.h | ||
e1000.c | ||
eepro100.c | ||
etraxfs_eth.c | ||
lan9118.c | ||
lance.c | ||
Makefile.objs | ||
mcf_fec.c | ||
milkymist-minimac2.c | ||
mipsnet.c | ||
ne2000-isa.c | ||
ne2000.c | ||
ne2000.h | ||
opencores_eth.c | ||
pcnet-pci.c | ||
pcnet.c | ||
pcnet.h | ||
rtl8139.c | ||
smc91c111.c | ||
spapr_llan.c | ||
stellaris_enet.c | ||
vhost_net.c | ||
virtio-net.c | ||
vmware_utils.h | ||
vmxnet3.c | ||
vmxnet3.h | ||
vmxnet_debug.h | ||
vmxnet_rx_pkt.c | ||
vmxnet_rx_pkt.h | ||
vmxnet_tx_pkt.c | ||
vmxnet_tx_pkt.h | ||
xen_nic.c | ||
xgmac.c | ||
xilinx_axienet.c | ||
xilinx_ethlite.c |