diff options
-rw-r--r-- | debian/.git-dpm | 4 | ||||
-rw-r--r-- | debian/changelog | 2 | ||||
-rw-r--r-- | debian/patches/scp-disallow-dot-or-empty-filename.patch | 32 | ||||
-rw-r--r-- | debian/patches/series | 1 | ||||
-rw-r--r-- | scp.c | 3 |
5 files changed, 39 insertions, 3 deletions
diff --git a/debian/.git-dpm b/debian/.git-dpm index f6384e17d..10491782a 100644 --- a/debian/.git-dpm +++ b/debian/.git-dpm | |||
@@ -1,6 +1,6 @@ | |||
1 | # see git-dpm(1) from git-dpm package | 1 | # see git-dpm(1) from git-dpm package |
2 | 1d2a55436d4b556269f42ad5f7e16608b5a8ed74 | 2 | dee21e97428e69d30e2d15c71f3e7cc08bf8e4f8 |
3 | 1d2a55436d4b556269f42ad5f7e16608b5a8ed74 | 3 | dee21e97428e69d30e2d15c71f3e7cc08bf8e4f8 |
4 | 3d246f10429fc9a37b98eabef94fe8dc7c61002b | 4 | 3d246f10429fc9a37b98eabef94fe8dc7c61002b |
5 | 3d246f10429fc9a37b98eabef94fe8dc7c61002b | 5 | 3d246f10429fc9a37b98eabef94fe8dc7c61002b |
6 | openssh_7.9p1.orig.tar.gz | 6 | openssh_7.9p1.orig.tar.gz |
diff --git a/debian/changelog b/debian/changelog index aee8f7b88..864e7b689 100644 --- a/debian/changelog +++ b/debian/changelog | |||
@@ -4,6 +4,8 @@ openssh (1:7.9p1-5) UNRELEASED; urgency=medium | |||
4 | only used by sshd (closes: #858050). | 4 | only used by sshd (closes: #858050). |
5 | * Drop obsolete alternate build-dependency on libssl1.0-dev (closes: | 5 | * Drop obsolete alternate build-dependency on libssl1.0-dev (closes: |
6 | #917342). | 6 | #917342). |
7 | * CVE-2018-20685: Apply upstream scp patch to disallow empty incoming | ||
8 | filename or ones that refer to the current directory (closes: #919101). | ||
7 | 9 | ||
8 | -- Colin Watson <cjwatson@debian.org> Thu, 06 Dec 2018 18:16:30 +0000 | 10 | -- Colin Watson <cjwatson@debian.org> Thu, 06 Dec 2018 18:16:30 +0000 |
9 | 11 | ||
diff --git a/debian/patches/scp-disallow-dot-or-empty-filename.patch b/debian/patches/scp-disallow-dot-or-empty-filename.patch new file mode 100644 index 000000000..716f2ffa8 --- /dev/null +++ b/debian/patches/scp-disallow-dot-or-empty-filename.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | From dee21e97428e69d30e2d15c71f3e7cc08bf8e4f8 Mon Sep 17 00:00:00 2001 | ||
2 | From: "djm@openbsd.org" <djm@openbsd.org> | ||
3 | Date: Fri, 16 Nov 2018 03:03:10 +0000 | ||
4 | Subject: upstream: disallow empty incoming filename or ones that refer to the | ||
5 | |||
6 | current directory; based on report/patch from Harry Sintonen | ||
7 | |||
8 | OpenBSD-Commit-ID: f27651b30eaee2df49540ab68d030865c04f6de9 | ||
9 | |||
10 | Origin: upstream, https://anongit.mindrot.org/openssh.git/commit/?id=6010c0303a422a9c5fa8860c061bf7105eb7f8b2 | ||
11 | Bug-Debian: https://bugs.debian.org/919101 | ||
12 | Last-Update: 2019-01-12 | ||
13 | |||
14 | Patch-Name: scp-disallow-dot-or-empty-filename.patch | ||
15 | --- | ||
16 | scp.c | 3 ++- | ||
17 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
18 | |||
19 | diff --git a/scp.c b/scp.c | ||
20 | index ed2864250..7163d33dc 100644 | ||
21 | --- a/scp.c | ||
22 | +++ b/scp.c | ||
23 | @@ -1114,7 +1114,8 @@ sink(int argc, char **argv) | ||
24 | SCREWUP("size out of range"); | ||
25 | size = (off_t)ull; | ||
26 | |||
27 | - if ((strchr(cp, '/') != NULL) || (strcmp(cp, "..") == 0)) { | ||
28 | + if (*cp == '\0' || strchr(cp, '/') != NULL || | ||
29 | + strcmp(cp, ".") == 0 || strcmp(cp, "..") == 0) { | ||
30 | run_err("error: unexpected filename: %s", cp); | ||
31 | exit(1); | ||
32 | } | ||
diff --git a/debian/patches/series b/debian/patches/series index a248f086a..a6fc19449 100644 --- a/debian/patches/series +++ b/debian/patches/series | |||
@@ -24,3 +24,4 @@ restore-authorized_keys2.patch | |||
24 | seccomp-s390-flock-ipc.patch | 24 | seccomp-s390-flock-ipc.patch |
25 | seccomp-s390-ioctl-ep11-crypto.patch | 25 | seccomp-s390-ioctl-ep11-crypto.patch |
26 | conch-old-privkey-format.patch | 26 | conch-old-privkey-format.patch |
27 | scp-disallow-dot-or-empty-filename.patch | ||
@@ -1114,7 +1114,8 @@ sink(int argc, char **argv) | |||
1114 | SCREWUP("size out of range"); | 1114 | SCREWUP("size out of range"); |
1115 | size = (off_t)ull; | 1115 | size = (off_t)ull; |
1116 | 1116 | ||
1117 | if ((strchr(cp, '/') != NULL) || (strcmp(cp, "..") == 0)) { | 1117 | if (*cp == '\0' || strchr(cp, '/') != NULL || |
1118 | strcmp(cp, ".") == 0 || strcmp(cp, "..") == 0) { | ||
1118 | run_err("error: unexpected filename: %s", cp); | 1119 | run_err("error: unexpected filename: %s", cp); |
1119 | exit(1); | 1120 | exit(1); |
1120 | } | 1121 | } |