dropbear: Fix CVE-2020-36254
authorHauke Mehrtens <hauke@hauke-m.de>
Sun, 2 May 2021 15:35:16 +0000 (17:35 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 3 May 2021 18:08:53 +0000 (20:08 +0200)
This backports a fix from dropbear 2020.81.
CVE-2020-36254 description:
scp.c in Dropbear before 2020.79 mishandles the filename of . or an empty filename, a related issue to CVE-2018-20685.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
package/network/services/dropbear/patches/001-fix-CVE-2020-36254.patch [new file with mode: 0644]

diff --git a/package/network/services/dropbear/patches/001-fix-CVE-2020-36254.patch b/package/network/services/dropbear/patches/001-fix-CVE-2020-36254.patch
new file mode 100644 (file)
index 0000000..03f8bf9
--- /dev/null
@@ -0,0 +1,21 @@
+From 8f8a3dff705fad774a10864a2e3dbcfa9779ceff 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(-)
+
+--- 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);
+               }