mirror of
https://git.yoctoproject.org/poky
synced 2026-05-08 05:09:24 +00:00
qemu/slirp: fix CVE-2020-7211
fix CVE-2020-7211 for qemu slirp submodule see : https://www.openwall.com/lists/oss-security/2020/01/17/2 https://gitlab.freedesktop.org/slirp/libslirp/commit/14ec36e107a8c9af7d0a80c3571fe39b291ff1d4 (From OE-Core rev: 31362d739834377ac4ab880029c3e3dda0cd7698) Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
60f199d4a2
commit
e4b609e5c1
@@ -34,6 +34,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
|
||||
file://CVE-2020-7039-2.patch \
|
||||
file://CVE-2020-7039-3.patch \
|
||||
file://0001-Add-enable-disable-udev.patch \
|
||||
file://CVE-2020-7211.patch \
|
||||
"
|
||||
UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
From 14ec36e107a8c9af7d0a80c3571fe39b291ff1d4 Mon Sep 17 00:00:00 2001
|
||||
From: Prasad J Pandit <pjp@fedoraproject.org>
|
||||
Date: Mon, 13 Jan 2020 17:44:31 +0530
|
||||
Subject: [PATCH] slirp: tftp: restrict relative path access
|
||||
|
||||
tftp restricts relative or directory path access on Linux systems.
|
||||
Apply same restrictions on Windows systems too. It helps to avoid
|
||||
directory traversal issue.
|
||||
|
||||
Fixes: https://bugs.launchpad.net/qemu/+bug/1812451
|
||||
Reported-by: Peter Maydell <peter.maydell@linaro.org>
|
||||
Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
|
||||
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||
Message-Id: <20200113121431.156708-1-ppandit@redhat.com>
|
||||
|
||||
Upstream-Status: Backport [https://gitlab.freedesktop.org/slirp/libslirp/-/commit/14ec36e107a8c9af7d0a80c3571fe39b291ff1d4.patch]
|
||||
CVE: CVE-2020-7211
|
||||
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
|
||||
|
||||
---
|
||||
slirp/src/tftp.c | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/slirp/src/tftp.c b/slirp/src/tftp.c
|
||||
index 093c2e0..e52e71b 100644
|
||||
--- a/slirp/src/tftp.c
|
||||
+++ b/slirp/src/tftp.c
|
||||
@@ -344,8 +344,13 @@ static void tftp_handle_rrq(Slirp *slirp, struct sockaddr_storage *srcsas,
|
||||
k += 6; /* skipping octet */
|
||||
|
||||
/* do sanity checks on the filename */
|
||||
- if (!strncmp(req_fname, "../", 3) ||
|
||||
- req_fname[strlen(req_fname) - 1] == '/' || strstr(req_fname, "/../")) {
|
||||
+ if (
|
||||
+#ifdef G_OS_WIN32
|
||||
+ strstr(req_fname, "..\\") ||
|
||||
+ req_fname[strlen(req_fname) - 1] == '\\' ||
|
||||
+#endif
|
||||
+ strstr(req_fname, "../") ||
|
||||
+ req_fname[strlen(req_fname) - 1] == '/') {
|
||||
tftp_send_error(spt, 2, "Access violation", tp);
|
||||
return;
|
||||
}
|
||||
--
|
||||
2.24.1
|
||||
|
||||
Reference in New Issue
Block a user