Package: release.debian.org Severity: normal Tags: buster User: release.debian....@packages.debian.org Usertags: pu
https://bugs.debian.org/946242 reports an OpenSSH regression on old kernels on certain architectures (e.g. i386) prompted by the interaction between an OpenSSL update and a seccomp filter. It's essentially the same as https://bugs.debian.org/941663, but at the time we didn't notice that the exact set of syscalls involved varies between architectures due to details of how the shm* library functions are implemented in glibc. I've attached the diff and would like approval to upload it. In https://bugs.debian.org/941810 we decided that it was best to issue this via buster-security; I think that would be the correct thing to do here as well, so I've CCed team@security. However, I'm filing this as a stable update request just in case there's disagreement about that for some reason. Thanks, -- Colin Watson [cjwat...@debian.org]
diff -Nru openssh-7.9p1/debian/.git-dpm openssh-7.9p1/debian/.git-dpm --- openssh-7.9p1/debian/.git-dpm 2019-10-06 19:17:34.000000000 +0100 +++ openssh-7.9p1/debian/.git-dpm 2020-01-12 00:06:24.000000000 +0000 @@ -1,6 +1,6 @@ # see git-dpm(1) from git-dpm package -35956d8211ef0a606a117ca3f0ba3ae163c31a39 -35956d8211ef0a606a117ca3f0ba3ae163c31a39 +6f794127bd7d332c1d88a3e35eda97dac4530a15 +6f794127bd7d332c1d88a3e35eda97dac4530a15 3d246f10429fc9a37b98eabef94fe8dc7c61002b 3d246f10429fc9a37b98eabef94fe8dc7c61002b openssh_7.9p1.orig.tar.gz diff -Nru openssh-7.9p1/debian/changelog openssh-7.9p1/debian/changelog --- openssh-7.9p1/debian/changelog 2019-10-06 19:18:07.000000000 +0100 +++ openssh-7.9p1/debian/changelog 2020-01-12 00:06:36.000000000 +0000 @@ -1,3 +1,13 @@ +openssh (1:7.9p1-10+deb10u2) UNRELEASED; urgency=medium + + * Apply upstream patch to deny (non-fatally) ipc in the seccomp sandbox, + fixing failures with OpenSSL 1.1.1d and Linux < 3.19 on some + architectures (closes: #946242). Note that this also drops the previous + change to allow ipc on s390, since upstream has security concerns with + that and it doesn't currently seem to be needed. + + -- Colin Watson <cjwat...@debian.org> Sun, 12 Jan 2020 00:06:36 +0000 + openssh (1:7.9p1-10+deb10u1) buster-security; urgency=high * Apply upstream patch to deny (non-fatally) shmget/shmat/shmdt in preauth diff -Nru openssh-7.9p1/debian/patches/sandbox-seccomp-ipc.patch openssh-7.9p1/debian/patches/sandbox-seccomp-ipc.patch --- openssh-7.9p1/debian/patches/sandbox-seccomp-ipc.patch 1970-01-01 01:00:00.000000000 +0100 +++ openssh-7.9p1/debian/patches/sandbox-seccomp-ipc.patch 2020-01-12 00:06:24.000000000 +0000 @@ -0,0 +1,48 @@ +From 6f794127bd7d332c1d88a3e35eda97dac4530a15 Mon Sep 17 00:00:00 2001 +From: Jeremy Drake <git...@jdrake.com> +Date: Fri, 11 Oct 2019 18:31:05 -0700 +Subject: Deny (non-fatal) ipc in preauth privsep child. + +As noted in openssh/openssh-portable#149, i386 does not have have +_NR_shmget etc. Instead, it has a single ipc syscall (see man 2 ipc, +https://linux.die.net/man/2/ipc). Add this syscall, if present, to the +list of syscalls that seccomp will deny non-fatally. + +[cjwatson: For backporting to buster, I've dropped the previous change +to allow ipc on s390. Upstream refused that since it opens security +weaknesses and doesn't currently seem to be needed, so I'd already +dropped that for bullseye.] + +Bug-Debian: https://bugs.debian.org/946242 +Origin: backport, https://anongit.mindrot.org/openssh.git/commit/?id=30f704ebc0e9e32b3d12f5d9e8c1b705fdde2c89 +Last-Update: 2020-01-11 + +Patch-Name: sandbox-seccomp-ipc.patch +--- + sandbox-seccomp-filter.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/sandbox-seccomp-filter.c b/sandbox-seccomp-filter.c +index e8f31555e..9b6aea8db 100644 +--- a/sandbox-seccomp-filter.c ++++ b/sandbox-seccomp-filter.c +@@ -158,6 +158,9 @@ static const struct sock_filter preauth_insns[] = { + #ifdef __NR_shmdt + SC_DENY(__NR_shmdt, EACCES), + #endif ++#ifdef __NR_ipc ++ SC_DENY(__NR_ipc, EACCES), ++#endif + + /* Syscalls to permit */ + #ifdef __NR_brk +@@ -205,9 +208,6 @@ static const struct sock_filter preauth_insns[] = { + #ifdef __NR_getuid32 + SC_ALLOW(__NR_getuid32), + #endif +-#if defined(__NR_ipc) && defined(__s390__) +- SC_ALLOW(__NR_ipc), +-#endif + #ifdef __NR_madvise + SC_ALLOW(__NR_madvise), + #endif diff -Nru openssh-7.9p1/debian/patches/series openssh-7.9p1/debian/patches/series --- openssh-7.9p1/debian/patches/series 2019-10-06 19:17:34.000000000 +0100 +++ openssh-7.9p1/debian/patches/series 2020-01-12 00:06:24.000000000 +0000 @@ -33,3 +33,4 @@ scp-handle-braces.patch revert-ipqos-defaults.patch seccomp-handle-shm.patch +sandbox-seccomp-ipc.patch