e8b9919265
- Fix preauth seccomp separation on mainframes (bsc#1016709) [openssh-7.2p2-s390_hw_crypto_syscalls.patch] [openssh-7.2p2-s390_OpenSSL-ibmpkcs11_syscalls.patch] - enable case-insensitive hostname matching (bsc#1017099) [openssh-7.2p2-ssh_case_insensitive_host_matching.patch] - add CAVS tests [openssh-7.2p2-cavstest-ctr.patch] [openssh-7.2p2-cavstest-kdf.patch] - Adding missing pieces for user matching (bsc#1021626) - Properly verify CIDR masks in configuration (bsc#1005893) [openssh-7.2p2-verify_CIDR_address_ranges.patch] - Remove pre-auth compression support from the server to prevent possible cryptographic attacks. (CVE-2016-10012, bsc#1016370) [openssh-7.2p2-disable_preauth_compression.patch] - limit directories for loading PKCS11 modules (CVE-2016-10009, bsc#1016366) [openssh-7.2p2-restrict_pkcs11-modules.patch] - Prevent possible leaks of host private keys to low-privilege process handling authentication (CVE-2016-10011, bsc#1016369) [openssh-7.2p2-prevent_private_key_leakage.patch] - Do not allow unix socket forwarding when running without privilege separation (CVE-2016-10010, bsc#1016368) [openssh-7.2p2-secure_unix_sockets_forwarding.patch] - prevent resource depletion during key exchange (bsc#1005480, CVE-2016-8858) [openssh-7.2p2-kex_resource_depletion.patch] OBS-URL: https://build.opensuse.org/request/show/500279 OBS-URL: https://build.opensuse.org/package/show/network/openssh?expand=0&rev=117
52 lines
1.8 KiB
Diff
52 lines
1.8 KiB
Diff
# HG changeset patch
|
|
# Parent 4e1fd41aaa9cafe8f7b07868ac38ed4dbdf594aa
|
|
Do not allow unix socket when running without privilege separation to prevent
|
|
privilege escalation through a socket created with root: ownership.
|
|
|
|
CVE-2016-10010
|
|
bsc#1016368
|
|
|
|
backported upstream commit b737e4d7433577403a31cff6614f6a1b0b5e22f4
|
|
|
|
diff --git a/openssh-7.2p2/serverloop.c b/openssh-7.2p2/serverloop.c
|
|
--- a/openssh-7.2p2/serverloop.c
|
|
+++ b/openssh-7.2p2/serverloop.c
|
|
@@ -990,17 +990,17 @@ server_request_direct_streamlocal(void)
|
|
originator_port = packet_get_int();
|
|
packet_check_eom();
|
|
|
|
debug("server_request_direct_streamlocal: originator %s port %d, target %s",
|
|
originator, originator_port, target);
|
|
|
|
/* XXX fine grained permissions */
|
|
if ((options.allow_streamlocal_forwarding & FORWARD_LOCAL) != 0 &&
|
|
- !no_port_forwarding_flag) {
|
|
+ !no_port_forwarding_flag && use_privsep) {
|
|
c = channel_connect_to_path(target,
|
|
"direct-streamlocal@openssh.com", "direct-streamlocal");
|
|
} else {
|
|
logit("refused streamlocal port forward: "
|
|
"originator %s port %d, target %s",
|
|
originator, originator_port, target);
|
|
}
|
|
|
|
@@ -1274,17 +1274,17 @@ server_input_global_request(int type, u_
|
|
|
|
memset(&fwd, 0, sizeof(fwd));
|
|
fwd.listen_path = packet_get_string(NULL);
|
|
debug("server_input_global_request: streamlocal-forward listen path %s",
|
|
fwd.listen_path);
|
|
|
|
/* check permissions */
|
|
if ((options.allow_streamlocal_forwarding & FORWARD_REMOTE) == 0
|
|
- || no_port_forwarding_flag) {
|
|
+ || no_port_forwarding_flag || !use_privsep) {
|
|
success = 0;
|
|
packet_send_debug("Server has disabled port forwarding.");
|
|
} else {
|
|
/* Start listening on the socket */
|
|
success = channel_setup_remote_fwd_listener(
|
|
&fwd, NULL, &options.fwd_opts);
|
|
}
|
|
free(fwd.listen_path);
|