]> git.ipfire.org Git - thirdparty/qemu.git/commit
slirp: udp: fix NULL pointer dereference because of uninitialized socket
authorPetr Matousek <pmatouse@redhat.com>
Thu, 18 Sep 2014 06:35:37 +0000 (08:35 +0200)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Wed, 24 Sep 2014 16:11:52 +0000 (11:11 -0500)
commit9a72433843d912a45046959b1953861211d1838d
tree916d7a42d6473515f6d5c951713c74635d35d38c
parent00dd2b22f691422ab3208af9af87df52875dc26a
slirp: udp: fix NULL pointer dereference because of uninitialized socket

When guest sends udp packet with source port and source addr 0,
uninitialized socket is picked up when looking for matching and already
created udp sockets, and later passed to sosendto() where NULL pointer
dereference is hit during so->slirp->vnetwork_mask.s_addr access.

Fix this by checking that the socket is not just a socket stub.

This is CVE-2014-3640.

Signed-off-by: Petr Matousek <pmatouse@redhat.com>
Reported-by: Xavier Mehrenberger <xavier.mehrenberger@airbus.com>
Reported-by: Stephane Duverger <stephane.duverger@eads.net>
Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
Message-id: 20140918063537.GX9321@dhcp-25-225.brq.redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
(cherry picked from commit 01f7cecf0037997cb0e58ec0d56bf9b5a6f7cb2a)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
slirp/udp.c