cifs-utils: fix CVE-2022-27239 CVE-2022-29869

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
Chee Yang Lee 2023-03-02 16:38:51 +08:00 committed by Armin Kuster
parent 54960c549b
commit 75cc182f38
3 changed files with 92 additions and 1 deletions

View File

@ -5,7 +5,10 @@ LICENSE = "GPL-3.0-only & LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRCREV = "8c06dce7d596e478c20bc54bdcec87ad97f80a1b"
SRC_URI = "git://git.samba.org/cifs-utils.git;branch=master"
SRC_URI = "git://git.samba.org/cifs-utils.git;branch=master \
file://CVE-2022-27239.patch \
file://CVE-2022-29869.patch \
"
S = "${WORKDIR}/git"
DEPENDS += "libtalloc"

View File

@ -0,0 +1,40 @@
From 007c07fd91b6d42f8bd45187cf78ebb06801139d Mon Sep 17 00:00:00 2001
From: Jeffrey Bencteux <jbe@improsec.com>
Date: Thu, 17 Mar 2022 12:58:52 -0400
Subject: [PATCH] CVE-2022-27239: mount.cifs: fix length check for ip option
parsing
Previous check was true whatever the length of the input string was,
leading to a buffer overflow in the subsequent strcpy call.
Bug: https://bugzilla.samba.org/show_bug.cgi?id=15025
Signed-off-by: Jeffrey Bencteux <jbe@improsec.com>
Reviewed-by: David Disseldorp <ddiss@suse.de>
Upstream-Status: Backport [ https://git.samba.org/?p=cifs-utils.git;a=commit;h=007c07fd91b6d42f8bd45187cf78ebb06801139d]
CVE: CVE-2022-27239
Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
---
mount.cifs.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/mount.cifs.c b/mount.cifs.c
index 84274c9..3a6b449 100644
--- a/mount.cifs.c
+++ b/mount.cifs.c
@@ -926,9 +926,10 @@ parse_options(const char *data, struct parsed_mount_info *parsed_info)
if (!value || !*value) {
fprintf(stderr,
"target ip address argument missing\n");
- } else if (strnlen(value, MAX_ADDRESS_LEN) <=
+ } else if (strnlen(value, MAX_ADDRESS_LEN) <
MAX_ADDRESS_LEN) {
- strcpy(parsed_info->addrlist, value);
+ strlcpy(parsed_info->addrlist, value,
+ MAX_ADDRESS_LEN);
if (parsed_info->verboseflag)
fprintf(stderr,
"ip address %s override specified\n",
--
2.34.1

View File

@ -0,0 +1,48 @@
From 8acc963a2e7e9d63fe1f2e7f73f5a03f83d9c379 Mon Sep 17 00:00:00 2001
From: Jeffrey Bencteux <jbe@improsec.com>
Date: Sat, 19 Mar 2022 13:41:15 -0400
Subject: [PATCH] mount.cifs: fix verbose messages on option parsing
When verbose logging is enabled, invalid credentials file lines may be
dumped to stderr. This may lead to information disclosure in particular
conditions when the credentials file given is sensitive and contains '='
signs.
Bug: https://bugzilla.samba.org/show_bug.cgi?id=15026
Signed-off-by: Jeffrey Bencteux <jbe@improsec.com>
Reviewed-by: David Disseldorp <ddiss@suse.de>
Upstream-Status: Backport [https://git.samba.org/?p=cifs-utils.git;a=commit;h=8acc963a2e7e9d63fe1f2e7f73f5a03f83d9c379]
CVE: CVE-2022-29869
Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
---
mount.cifs.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/mount.cifs.c b/mount.cifs.c
index 3a6b449..2278995 100644
--- a/mount.cifs.c
+++ b/mount.cifs.c
@@ -628,17 +628,13 @@ static int open_cred_file(char *file_name,
goto return_i;
break;
case CRED_DOM:
- if (parsed_info->verboseflag)
- fprintf(stderr, "domain=%s\n",
- temp_val);
strlcpy(parsed_info->domain, temp_val,
sizeof(parsed_info->domain));
break;
case CRED_UNPARSEABLE:
if (parsed_info->verboseflag)
fprintf(stderr, "Credential formatted "
- "incorrectly: %s\n",
- temp_val ? temp_val : "(null)");
+ "incorrectly\n");
break;
}
}
--
2.34.1