[dunfell] dropbear: Fix CVE-2020-36254

Message ID 62703ef9115b2028f4e57328cd1abc02f2f784e3.camel@lists.verisure.com
State Accepted, archived
Commit 10712b736d7cbde897c5aab30e969c04740dce34
Headers show
Series [dunfell] dropbear: Fix CVE-2020-36254 | expand

Commit Message

Ernst Sjöstrand Dec. 21, 2021, 9:03 a.m. UTC
Dropbear shares a lot of code with other SSH implementations, so this is
a port of CVE-2018-20685 to dropbear.

Reference:
https://github.com/mkj/dropbear/commit/8f8a3dff705fad774a10864a2e3dbcfa9779ceff

Signed-off-by: Ernst Sjöstrand <ernst.sjostrand@verisure.com>
---
 meta/recipes-core/dropbear/dropbear.inc       |  4 +++-
 ...c-Port-OpenSSH-CVE-2018-20685-fix-80.patch | 23 +++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-core/dropbear/dropbear/0001-scp.c-Port-OpenSSH-CVE-2018-20685-fix-80.patch

-- 
2.34.0

Patch

diff --git a/meta/recipes-core/dropbear/dropbear.inc b/meta/recipes-core/dropbear/dropbear.inc
index d41e8b36dc..83bcdbc0a1 100644
--- a/meta/recipes-core/dropbear/dropbear.inc
+++ b/meta/recipes-core/dropbear/dropbear.inc
@@ -22,7 +22,9 @@  SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.bz2 \
            file://dropbear.socket \
            file://dropbear.default \
            ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
-           ${@bb.utils.contains('PACKAGECONFIG', 'disable-weak-ciphers', 'file://dropbear-disable-weak-ciphers.patch', '', d)} "
+           ${@bb.utils.contains('PACKAGECONFIG', 'disable-weak-ciphers', 'file://dropbear-disable-weak-ciphers.patch', '', d)} \
+           file://0001-scp.c-Port-OpenSSH-CVE-2018-20685-fix-80.patch \
+           "
 
 PAM_SRC_URI = "file://0005-dropbear-enable-pam.patch \
                file://0006-dropbear-configuration-file.patch \
diff --git a/meta/recipes-core/dropbear/dropbear/0001-scp.c-Port-OpenSSH-CVE-2018-20685-fix-80.patch b/meta/recipes-core/dropbear/dropbear/0001-scp.c-Port-OpenSSH-CVE-2018-20685-fix-80.patch
new file mode 100644
index 0000000000..72ac3e6630
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear/0001-scp.c-Port-OpenSSH-CVE-2018-20685-fix-80.patch
@@ -0,0 +1,23 @@ 
+From c96c48d62aefc372f2105293ddf8cff2d116dc3a Mon Sep 17 00:00:00 2001
+From: Haelwenn Monnier <contact+github.com@hacktivis.me>
+Date: Mon, 25 May 2020 14:54:29 +0200
+Subject: [PATCH] scp.c: Port OpenSSH CVE-2018-20685 fix (#80)
+
+---
+ scp.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/scp.c b/scp.c
+index 742ae00..7b8e7d2 100644
+--- a/scp.c
++++ b/scp.c
+@@ -935,7 +935,8 @@ sink(int argc, char **argv)
+ 			size = size * 10 + (*cp++ - '0');
+ 		if (*cp++ != ' ')
+ 			SCREWUP("size not delimited");
+-		if ((strchr(cp, '/') != NULL) || (strcmp(cp, "..") == 0)) {
++		if (*cp == '\0' || strchr(cp, '/') != NULL ||
++		    strcmp(cp, ".") == 0 || strcmp(cp, "..") == 0) {
+ 			run_err("error: unexpected filename: %s", cp);
+ 			exit(1);
+ 		}