Blame SOURCES/0020-SUDO-Create-the-socket-with-stricter-permissions.patch

cdf651
From e13d53326bc154c684ea1bef9efc5922b5228945 Mon Sep 17 00:00:00 2001
cdf651
From: Jakub Hrozek <jhrozek@redhat.com>
cdf651
Date: Fri, 15 Jun 2018 22:29:34 +0200
cdf651
Subject: [PATCH] SUDO: Create the socket with stricter permissions
cdf651
MIME-Version: 1.0
cdf651
Content-Type: text/plain; charset=UTF-8
cdf651
Content-Transfer-Encoding: 8bit
cdf651
cdf651
This patch switches the sudo responder from being created as a public
cdf651
responder where the permissions are open and not checked by the sssd
cdf651
deaamon to a private socket. In this case, sssd creates the pipes with
cdf651
strict permissions (see the umask in the call to create_pipe_fd() in
cdf651
set_unix_socket()) and additionaly checks the permissions with every read
cdf651
via the tevent integrations (see accept_fd_handler()).
cdf651
cdf651
Resolves:
cdf651
https://pagure.io/SSSD/sssd/issue/3766 (CVE-2018-10852)
cdf651
cdf651
Reviewed-by: Sumit Bose <sbose@redhat.com>
cdf651
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
cdf651
(cherry picked from commit ed90a20a0f0e936eb00d268080716c0384ffb01d)
cdf651
cdf651
DOWNSTREAM:
cdf651
Resolves: rhbz#1590603 - EMBARGOED CVE-2018-10852 sssd: information leak from the sssd-sudo responder [rhel-7]
cdf651
---
cdf651
 src/responder/sudo/sudosrv.c         | 3 ++-
cdf651
 src/sysv/systemd/sssd-sudo.socket.in | 1 +
cdf651
 2 files changed, 3 insertions(+), 1 deletion(-)
cdf651
cdf651
diff --git a/src/responder/sudo/sudosrv.c b/src/responder/sudo/sudosrv.c
cdf651
index ac4258710d3a9b48285522abd23bdd59ba42ad4e..e87a24499c2d82fafaa8e1f9b386e44332394266 100644
cdf651
--- a/src/responder/sudo/sudosrv.c
cdf651
+++ b/src/responder/sudo/sudosrv.c
cdf651
@@ -79,7 +79,8 @@ int sudo_process_init(TALLOC_CTX *mem_ctx,
cdf651
     sudo_cmds = get_sudo_cmds();
cdf651
     ret = sss_process_init(mem_ctx, ev, cdb,
cdf651
                            sudo_cmds,
cdf651
-                           SSS_SUDO_SOCKET_NAME, -1, NULL, -1,
cdf651
+                           NULL, -1,                   /* No public socket */
cdf651
+                           SSS_SUDO_SOCKET_NAME, -1,   /* Private socket only */
cdf651
                            CONFDB_SUDO_CONF_ENTRY,
cdf651
                            SSS_SUDO_SBUS_SERVICE_NAME,
cdf651
                            SSS_SUDO_SBUS_SERVICE_VERSION,
cdf651
diff --git a/src/sysv/systemd/sssd-sudo.socket.in b/src/sysv/systemd/sssd-sudo.socket.in
cdf651
index c9abb875f0accbaf58d78846020fef74c7473528..96a8b0327ddb4d331c9b2e97ece3453f8f76872d 100644
cdf651
--- a/src/sysv/systemd/sssd-sudo.socket.in
cdf651
+++ b/src/sysv/systemd/sssd-sudo.socket.in
cdf651
@@ -11,6 +11,7 @@ ExecStartPre=@libexecdir@/sssd/sssd_check_socket_activated_responders -r sudo
cdf651
 ListenStream=@pipepath@/sudo
cdf651
 SocketUser=@SSSD_USER@
cdf651
 SocketGroup=@SSSD_USER@
cdf651
+SocketMode=0600
cdf651
 
cdf651
 [Install]
cdf651
 WantedBy=sssd.service
cdf651
-- 
cdf651
2.17.1
cdf651