summaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2020-02-05 22:08:06 +0100
committerMarius Bakke <mbakke@fastmail.com>2020-02-05 22:08:06 +0100
commitf10921c5ade56534633eae0da94da6e81aacc2aa (patch)
tree599d0256cc509f47a3e75ea1214d5374de51eee8 /gnu/packages/patches
parent0a83339bb1429332ee889e9a976aa214ae2ac0db (diff)
parent9d0dfd9a9a7c43363a4e140c20d49f119fe6f2e3 (diff)
downloadguix-patches-f10921c5ade56534633eae0da94da6e81aacc2aa.tar
guix-patches-f10921c5ade56534633eae0da94da6e81aacc2aa.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/qemu-CVE-2020-1711.patch69
-rw-r--r--gnu/packages/patches/sbcl-graph-asdf-definitions.patch12
2 files changed, 75 insertions, 6 deletions
diff --git a/gnu/packages/patches/qemu-CVE-2020-1711.patch b/gnu/packages/patches/qemu-CVE-2020-1711.patch
new file mode 100644
index 0000000000..32d04f61dd
--- /dev/null
+++ b/gnu/packages/patches/qemu-CVE-2020-1711.patch
@@ -0,0 +1,69 @@
+Fix CVE-2020-1711:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1711
+
+Patch copied from upstream source repository:
+
+https://git.qemu.org/?p=qemu.git;a=commitdiff;h=693fd2acdf14dd86c0bf852610f1c2cca80a74dc
+
+From 693fd2acdf14dd86c0bf852610f1c2cca80a74dc Mon Sep 17 00:00:00 2001
+From: Felipe Franciosi <felipe@nutanix.com>
+Date: Thu, 23 Jan 2020 12:44:59 +0000
+Subject: [PATCH] iscsi: Cap block count from GET LBA STATUS (CVE-2020-1711)
+
+When querying an iSCSI server for the provisioning status of blocks (via
+GET LBA STATUS), Qemu only validates that the response descriptor zero's
+LBA matches the one requested. Given the SCSI spec allows servers to
+respond with the status of blocks beyond the end of the LUN, Qemu may
+have its heap corrupted by clearing/setting too many bits at the end of
+its allocmap for the LUN.
+
+A malicious guest in control of the iSCSI server could carefully program
+Qemu's heap (by selectively setting the bitmap) and then smash it.
+
+This limits the number of bits that iscsi_co_block_status() will try to
+update in the allocmap so it can't overflow the bitmap.
+
+Fixes: CVE-2020-1711
+Cc: qemu-stable@nongnu.org
+Signed-off-by: Felipe Franciosi <felipe@nutanix.com>
+Signed-off-by: Peter Turschmid <peter.turschm@nutanix.com>
+Signed-off-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
+Signed-off-by: Kevin Wolf <kwolf@redhat.com>
+---
+ block/iscsi.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/block/iscsi.c b/block/iscsi.c
+index 2aea7e3f13..cbd57294ab 100644
+--- a/block/iscsi.c
++++ b/block/iscsi.c
+@@ -701,7 +701,7 @@ static int coroutine_fn iscsi_co_block_status(BlockDriverState *bs,
+ struct scsi_get_lba_status *lbas = NULL;
+ struct scsi_lba_status_descriptor *lbasd = NULL;
+ struct IscsiTask iTask;
+- uint64_t lba;
++ uint64_t lba, max_bytes;
+ int ret;
+
+ iscsi_co_init_iscsitask(iscsilun, &iTask);
+@@ -721,6 +721,7 @@ static int coroutine_fn iscsi_co_block_status(BlockDriverState *bs,
+ }
+
+ lba = offset / iscsilun->block_size;
++ max_bytes = (iscsilun->num_blocks - lba) * iscsilun->block_size;
+
+ qemu_mutex_lock(&iscsilun->mutex);
+ retry:
+@@ -764,7 +765,7 @@ retry:
+ goto out_unlock;
+ }
+
+- *pnum = (int64_t) lbasd->num_blocks * iscsilun->block_size;
++ *pnum = MIN((int64_t) lbasd->num_blocks * iscsilun->block_size, max_bytes);
+
+ if (lbasd->provisioning == SCSI_PROVISIONING_TYPE_DEALLOCATED ||
+ lbasd->provisioning == SCSI_PROVISIONING_TYPE_ANCHORED) {
+--
+2.25.0
+
diff --git a/gnu/packages/patches/sbcl-graph-asdf-definitions.patch b/gnu/packages/patches/sbcl-graph-asdf-definitions.patch
index a528ccfcc6..ec17949675 100644
--- a/gnu/packages/patches/sbcl-graph-asdf-definitions.patch
+++ b/gnu/packages/patches/sbcl-graph-asdf-definitions.patch
@@ -24,11 +24,11 @@ index 193b6e3..56afc8f 100644
-(register-system-packages "femlisp-matlisp" '(:fl.matlisp))
+ cl-heap)
+ :components ((:file "graph")))
-diff --git a/graph.dot.asd b/graph.dot.asd
+diff --git a/graph-dot.asd b/graph-dot.asd
new file mode 100644
index 0000000..12aec7e
--- /dev/null
-+++ b/graph.dot.asd
++++ b/graph-dot.asd
@@ -0,0 +1,8 @@
+(defsystem :graph-dot
+ :depends-on (alexandria
@@ -38,11 +38,11 @@ index 0000000..12aec7e
+ cl-ppcre
+ graph)
+ :components ((:file "dot")))
-diff --git a/graph.json.asd b/graph.json.asd
+diff --git a/graph-json.asd b/graph-json.asd
new file mode 100644
index 0000000..e7d091f
--- /dev/null
-+++ b/graph.json.asd
++++ b/graph-json.asd
@@ -0,0 +1,8 @@
+(defsystem :graph-json
+ :depends-on (alexandria
@@ -52,11 +52,11 @@ index 0000000..e7d091f
+ yason
+ graph)
+ :components ((:file "json")))
-diff --git a/graph.test.asd b/graph.test.asd
+diff --git a/graph-test.asd b/graph-test.asd
new file mode 100644
index 0000000..1e811e1
--- /dev/null
-+++ b/graph.test.asd
++++ b/graph-test.asd
@@ -0,0 +1,10 @@
+(defsystem :graph-test
+ :depends-on (alexandria