diff options
| author | Sona Sarmadi <sona.sarmadi@enea.com> | 2017-09-14 08:16:06 +0200 |
|---|---|---|
| committer | Martin Borg <martin.borg@enea.com> | 2017-09-18 13:54:31 +0200 |
| commit | 4c6acb2de2b9612dfae273e63348c40921ebf235 (patch) | |
| tree | 5283f8803a3bcbb5fb919cba75df5cbddcd99ce5 /recipes-devtools | |
| parent | 89da7b077d37beea5b759ad35bba6366aa696245 (diff) | |
| download | meta-el-common-4c6acb2de2b9612dfae273e63348c40921ebf235.tar.gz | |
qemu: CVE-2017-5931
Fixes integer overflow in in handling virtio-crypto requests
Reference:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5931
Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
Signed-off-by: Martin Borg <martin.borg@enea.com>
Diffstat (limited to 'recipes-devtools')
| -rw-r--r-- | recipes-devtools/qemu/qemu/CVE-2017-5931.patch | 52 | ||||
| -rw-r--r-- | recipes-devtools/qemu/qemu_%.bbappend | 1 |
2 files changed, 53 insertions, 0 deletions
diff --git a/recipes-devtools/qemu/qemu/CVE-2017-5931.patch b/recipes-devtools/qemu/qemu/CVE-2017-5931.patch new file mode 100644 index 0000000..4c35c26 --- /dev/null +++ b/recipes-devtools/qemu/qemu/CVE-2017-5931.patch | |||
| @@ -0,0 +1,52 @@ | |||
| 1 | From d6f119475d3c9c913f9140771895036be66d5c33 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Gonglei <arei.gonglei@huawei.com> | ||
| 3 | Date: Tue, 3 Jan 2017 14:50:03 +0800 | ||
| 4 | Subject: [PATCH] virtio-crypto: fix possible integer and heap overflow | ||
| 5 | |||
| 6 | Because the 'size_t' type is 4 bytes in 32-bit platform, which | ||
| 7 | is the same with 'int'. It's easy to make 'max_len' to zero when | ||
| 8 | integer overflow and then cause heap overflow if 'max_len' is zero. | ||
| 9 | |||
| 10 | Using uint_64 instead of size_t to avoid the integer overflow. | ||
| 11 | |||
| 12 | CVE: CVE-2017-5931 | ||
| 13 | Upstream-Status: Backport [backport from 2.8.1.1 releases: https://git.qemu.org/?p=qemu.git;a=commit;h=d6f119475d3c9c913f9140771895036be66d5c33] | ||
| 14 | |||
| 15 | Cc: qemu-stable@nongnu.org | ||
| 16 | Reported-by: Li Qiang <liqiang6-s@360.cn> | ||
| 17 | Signed-off-by: Gonglei <arei.gonglei@huawei.com> | ||
| 18 | Tested-by: Li Qiang <liqiang6-s@360.cn> | ||
| 19 | Reviewed-by: Michael S. Tsirkin <mst@redhat.com> | ||
| 20 | Signed-off-by: Michael S. Tsirkin <mst@redhat.com> | ||
| 21 | (cherry picked from commit a08aaff811fb194950f79711d2afe5a892ae03a4) | ||
| 22 | Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> | ||
| 23 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
| 24 | --- | ||
| 25 | hw/virtio/virtio-crypto.c | 4 ++-- | ||
| 26 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
| 27 | |||
| 28 | diff --git a/hw/virtio/virtio-crypto.c b/hw/virtio/virtio-crypto.c | ||
| 29 | index 2f2467e..c23e1ad 100644 | ||
| 30 | --- a/hw/virtio/virtio-crypto.c | ||
| 31 | +++ b/hw/virtio/virtio-crypto.c | ||
| 32 | @@ -416,7 +416,7 @@ virtio_crypto_sym_op_helper(VirtIODevice *vdev, | ||
| 33 | uint32_t hash_start_src_offset = 0, len_to_hash = 0; | ||
| 34 | uint32_t cipher_start_src_offset = 0, len_to_cipher = 0; | ||
| 35 | |||
| 36 | - size_t max_len, curr_size = 0; | ||
| 37 | + uint64_t max_len, curr_size = 0; | ||
| 38 | size_t s; | ||
| 39 | |||
| 40 | /* Plain cipher */ | ||
| 41 | @@ -441,7 +441,7 @@ virtio_crypto_sym_op_helper(VirtIODevice *vdev, | ||
| 42 | return NULL; | ||
| 43 | } | ||
| 44 | |||
| 45 | - max_len = iv_len + aad_len + src_len + dst_len + hash_result_len; | ||
| 46 | + max_len = (uint64_t)iv_len + aad_len + src_len + dst_len + hash_result_len; | ||
| 47 | if (unlikely(max_len > vcrypto->conf.max_size)) { | ||
| 48 | virtio_error(vdev, "virtio-crypto too big length"); | ||
| 49 | return NULL; | ||
| 50 | -- | ||
| 51 | 1.9.1 | ||
| 52 | |||
diff --git a/recipes-devtools/qemu/qemu_%.bbappend b/recipes-devtools/qemu/qemu_%.bbappend index 3ebff2d..e27553c 100644 --- a/recipes-devtools/qemu/qemu_%.bbappend +++ b/recipes-devtools/qemu/qemu_%.bbappend | |||
| @@ -6,4 +6,5 @@ SRC_URI += "file://0001-CVE-2017-2620.patch \ | |||
| 6 | file://CVE-2017-7471.patch \ | 6 | file://CVE-2017-7471.patch \ |
| 7 | file://CVE-2017-6505.patch \ | 7 | file://CVE-2017-6505.patch \ |
| 8 | file://CVE-2017-8309.patch \ | 8 | file://CVE-2017-8309.patch \ |
| 9 | file://CVE-2017-5931.patch \ | ||
| 9 | " | 10 | " |
