Patrick Williams | f1e5d69 | 2016-03-30 15:21:19 -0500 | [diff] [blame^] | 1 | From 8b98a2f07175d46c3f7217639bd5e03f2ec56343 Mon Sep 17 00:00:00 2001 |
| 2 | From: Jason Wang <jasowang@redhat.com> |
| 3 | Date: Mon, 30 Nov 2015 15:00:06 +0800 |
| 4 | Subject: [PATCH] pcnet: fix rx buffer overflow(CVE-2015-7512) |
| 5 | |
| 6 | Backends could provide a packet whose length is greater than buffer |
| 7 | size. Check for this and truncate the packet to avoid rx buffer |
| 8 | overflow in this case. |
| 9 | |
| 10 | Cc: Prasad J Pandit <pjp@fedoraproject.org> |
| 11 | Cc: qemu-stable@nongnu.org |
| 12 | Reviewed-by: Michael S. Tsirkin <mst@redhat.com> |
| 13 | Signed-off-by: Jason Wang <jasowang@redhat.com> |
| 14 | |
| 15 | Upsteam_Status: Backport |
| 16 | |
| 17 | http://git.qemu.org/?p=qemu.git;a=commit;h=8b98a2f07175d46c3f7217639bd5e03f2ec56343 |
| 18 | |
| 19 | CVE: CVE-2015-7512 |
| 20 | [Yocto # 9013] |
| 21 | |
| 22 | Signed-off-by: Armin Kuster <akuster@mvista.com> |
| 23 | |
| 24 | --- |
| 25 | hw/net/pcnet.c | 6 ++++++ |
| 26 | 1 file changed, 6 insertions(+) |
| 27 | |
| 28 | Index: qemu-2.4.0/hw/net/pcnet.c |
| 29 | =================================================================== |
| 30 | --- qemu-2.4.0.orig/hw/net/pcnet.c |
| 31 | +++ qemu-2.4.0/hw/net/pcnet.c |
| 32 | @@ -1065,6 +1065,12 @@ ssize_t pcnet_receive(NetClientState *nc |
| 33 | int pktcount = 0; |
| 34 | |
| 35 | if (!s->looptest) { |
| 36 | + if (size > 4092) { |
| 37 | +#ifdef PCNET_DEBUG_RMD |
| 38 | + fprintf(stderr, "pcnet: truncates rx packet.\n"); |
| 39 | +#endif |
| 40 | + size = 4092; |
| 41 | + } |
| 42 | memcpy(src, buf, size); |
| 43 | /* no need to compute the CRC */ |
| 44 | src[size] = 0; |