aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-iscsiuio-should-ignore-bogus-iscsid-broadcast-packet.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-iscsiuio-should-ignore-bogus-iscsid-broadcast-packet.patch')
-rw-r--r--meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-iscsiuio-should-ignore-bogus-iscsid-broadcast-packet.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-iscsiuio-should-ignore-bogus-iscsid-broadcast-packet.patch b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-iscsiuio-should-ignore-bogus-iscsid-broadcast-packet.patch
new file mode 100644
index 0000000000..1f5202ec02
--- /dev/null
+++ b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-iscsiuio-should-ignore-bogus-iscsid-broadcast-packet.patch
@@ -0,0 +1,39 @@
+From 035bb16845537351e1bccb16d38981754fd53129 Mon Sep 17 00:00:00 2001
+From: Lee Duncan <lduncan@suse.com>
+Date: Fri, 15 Dec 2017 10:37:56 -0800
+Subject: [PATCH 2/7] iscsiuio should ignore bogus iscsid broadcast packets
+
+When iscsiuio is receiving broadcast packets from iscsid,
+if the 'payload_len', carried in the packet, is too
+large then ignore the packet and print a message.
+Found by Qualsys.
+
+CVE: CVE-2017-17840
+
+Upstream-Status: Backport
+
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+---
+ iscsiuio/src/unix/iscsid_ipc.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/iscsiuio/src/unix/iscsid_ipc.c b/iscsiuio/src/unix/iscsid_ipc.c
+index 08e49e5..dfdae63 100644
+--- a/iscsiuio/src/unix/iscsid_ipc.c
++++ b/iscsiuio/src/unix/iscsid_ipc.c
+@@ -950,6 +950,12 @@ int process_iscsid_broadcast(int s2)
+
+ cmd = data->header.command;
+ payload_len = data->header.payload_len;
++ if (payload_len > sizeof(data->u)) {
++ LOG_ERR(PFX "Data payload length too large (%d). Corrupt payload?",
++ payload_len);
++ rc = -EINVAL;
++ goto error;
++ }
+
+ LOG_DEBUG(PFX "recv iscsid request: cmd: %d, payload_len: %d",
+ cmd, payload_len);
+--
+1.9.1
+