Compare commits
10 Commits
master
...
debian/1%4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba9a0dec9d | ||
|
|
75e2a3b103 | ||
|
|
e5e623f4ca | ||
|
|
5fd2757d66 | ||
|
|
bef0d93006 | ||
|
|
dd729b3572 | ||
|
|
1edacbf29a | ||
|
|
a784e094c4 | ||
|
|
1f9119ef49 | ||
|
|
654077fff8 |
23
debian/changelog
vendored
23
debian/changelog
vendored
@@ -1,3 +1,26 @@
|
||||
shadow (1:4.2-3+deb8u2) jessie-security; urgency=high
|
||||
|
||||
* Non-maintainer upload by the Security Team.
|
||||
* su: properly clear child PID (CVE-2017-2616) (Closes: #855943)
|
||||
|
||||
-- Salvatore Bonaccorso <carnil@debian.org> Thu, 23 Feb 2017 17:21:08 +0100
|
||||
|
||||
shadow (1:4.2-3+deb8u1) jessie; urgency=medium
|
||||
|
||||
* Non-maintainer upload.
|
||||
* Fix error handling in busy user detection. (Closes: #778287)
|
||||
|
||||
-- Bastian Blank <bastian.blank@credativ.de> Wed, 18 Nov 2015 08:07:09 +0000
|
||||
|
||||
shadow (1:4.2-3) unstable; urgency=low
|
||||
|
||||
* Enforce hardened builds to workaround cdbs sometimes not building
|
||||
with hardening flags as in 1:4.2-2+b1
|
||||
Thanks to Dr. Markus Waldeck for pointing the issue and Simon Ruderich
|
||||
For providing a working patch.
|
||||
|
||||
-- Christian Perrier <bubulle@debian.org> Wed, 19 Nov 2014 21:59:09 +0100
|
||||
|
||||
shadow (1:4.2-2) unstable; urgency=low
|
||||
|
||||
* The "Soumaintrain" release
|
||||
|
||||
1
debian/control
vendored
1
debian/control
vendored
@@ -5,6 +5,7 @@ Maintainer: Shadow package maintainers <pkg-shadow-devel@lists.alioth.debian.org
|
||||
Standards-Version: 3.9.5
|
||||
Uploaders: Christian Perrier <bubulle@debian.org>, Nicolas FRANCOIS (Nekral) <nicolas.francois@centraliens.net>
|
||||
Build-Depends: dh-autoreconf, gettext, libpam0g-dev, debhelper (>= 6.0.7~), quilt, dpkg-dev (>= 1.13.5), xsltproc, docbook-xsl, docbook-xml, libxml2-utils, cdbs, libselinux1-dev [linux-any], libsemanage1-dev [linux-any], gnome-doc-utils (>= 0.4.3), bison, libaudit-dev [linux-any]
|
||||
,hardening-wrapper
|
||||
Vcs-Git: git://anonscm.debian.org/git/pkg-shadow/shadow.git
|
||||
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-shadow/shadow.git;a=summary
|
||||
Homepage: http://pkg-shadow.alioth.debian.org/
|
||||
|
||||
38
debian/patches/1020_fix_user_busy_errors
vendored
Normal file
38
debian/patches/1020_fix_user_busy_errors
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
Description: Fix user_busy to not leave subuid open in case of error.
|
||||
Author: William Grant <wgrant@ubuntu.com>
|
||||
Bug: https://bugs.launchpad.net/ubuntu/vivid/+source/shadow/+bug/1436937
|
||||
|
||||
Index: shadow-4.2/libmisc/user_busy.c
|
||||
===================================================================
|
||||
--- shadow-4.2.orig/libmisc/user_busy.c
|
||||
+++ shadow-4.2/libmisc/user_busy.c
|
||||
@@ -175,6 +175,9 @@ static int user_busy_processes (const ch
|
||||
if (stat ("/", &sbroot) != 0) {
|
||||
perror ("stat (\"/\")");
|
||||
(void) closedir (proc);
|
||||
+#ifdef ENABLE_SUBIDS
|
||||
+ sub_uid_close();
|
||||
+#endif /* ENABLE_SUBIDS */
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -212,6 +215,9 @@ static int user_busy_processes (const ch
|
||||
|
||||
if (check_status (name, tmp_d_name, uid) != 0) {
|
||||
(void) closedir (proc);
|
||||
+#ifdef ENABLE_SUBIDS
|
||||
+ sub_uid_close();
|
||||
+#endif /* ENABLE_SUBIDS */
|
||||
fprintf (stderr,
|
||||
_("%s: user %s is currently used by process %d\n"),
|
||||
Prog, name, pid);
|
||||
@@ -232,6 +238,9 @@ static int user_busy_processes (const ch
|
||||
}
|
||||
if (check_status (name, task_path+6, uid) != 0) {
|
||||
(void) closedir (proc);
|
||||
+#ifdef ENABLE_SUBIDS
|
||||
+ sub_uid_close();
|
||||
+#endif /* ENABLE_SUBIDS */
|
||||
fprintf (stderr,
|
||||
_("%s: user %s is currently used by process %d\n"),
|
||||
Prog, name, pid);
|
||||
59
debian/patches/301-CVE-2017-2616-su-properly-clear-child-PID.patch
vendored
Normal file
59
debian/patches/301-CVE-2017-2616-su-properly-clear-child-PID.patch
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
From 08fd4b69e84364677a10e519ccb25b71710ee686 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Stoeckmann <tobias@stoeckmann.org>
|
||||
Date: Thu, 23 Feb 2017 09:47:29 -0600
|
||||
Subject: [PATCH] su: properly clear child PID
|
||||
|
||||
If su is compiled with PAM support, it is possible for any local user
|
||||
to send SIGKILL to other processes with root privileges. There are
|
||||
only two conditions. First, the user must be able to perform su with
|
||||
a successful login. This does NOT have to be the root user, even using
|
||||
su with the same id is enough, e.g. "su $(whoami)". Second, SIGKILL
|
||||
can only be sent to processes which were executed after the su process.
|
||||
It is not possible to send SIGKILL to processes which were already
|
||||
running. I consider this as a security vulnerability, because I was
|
||||
able to write a proof of concept which unlocked a screen saver of
|
||||
another user this way.
|
||||
---
|
||||
src/su.c | 19 +++++++++++++++++--
|
||||
1 file changed, 17 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/src/su.c
|
||||
+++ b/src/su.c
|
||||
@@ -363,20 +363,35 @@ static void prepare_pam_close_session (v
|
||||
/* wake child when resumed */
|
||||
kill (pid, SIGCONT);
|
||||
stop = false;
|
||||
+ } else {
|
||||
+ pid_child = 0;
|
||||
}
|
||||
} while (!stop);
|
||||
}
|
||||
|
||||
- if (0 != caught) {
|
||||
+ if (0 != caught && 0 != pid_child) {
|
||||
(void) fputs ("\n", stderr);
|
||||
(void) fputs (_("Session terminated, terminating shell..."),
|
||||
stderr);
|
||||
(void) kill (-pid_child, caught);
|
||||
|
||||
(void) signal (SIGALRM, kill_child);
|
||||
+ (void) signal (SIGCHLD, catch_signals);
|
||||
(void) alarm (2);
|
||||
|
||||
- (void) wait (&status);
|
||||
+ sigemptyset (&ourset);
|
||||
+ if ((sigaddset (&ourset, SIGALRM) != 0)
|
||||
+ || (sigprocmask (SIG_BLOCK, &ourset, NULL) != 0)) {
|
||||
+ fprintf (stderr, _("%s: signal masking malfunction\n"), Prog);
|
||||
+ kill_child (0);
|
||||
+ } else {
|
||||
+ while (0 == waitpid (pid_child, &status, WNOHANG)) {
|
||||
+ sigsuspend (&ourset);
|
||||
+ }
|
||||
+ pid_child = 0;
|
||||
+ (void) sigprocmask (SIG_UNBLOCK, &ourset, NULL);
|
||||
+ }
|
||||
+
|
||||
(void) fputs (_(" ...terminated.\n"), stderr);
|
||||
}
|
||||
|
||||
2
debian/patches/series
vendored
2
debian/patches/series
vendored
@@ -4,6 +4,7 @@
|
||||
|
||||
503_shadowconfig.8
|
||||
008_login_log_failure_in_FTMP
|
||||
301-CVE-2017-2616-su-properly-clear-child-PID.patch
|
||||
429_login_FAILLOG_ENAB
|
||||
401_cppw_src.dpatch
|
||||
# 402 should be merged in 401, but should be reviewed by SE Linux experts first
|
||||
@@ -34,3 +35,4 @@
|
||||
#userns/16_add-argument-sanity-checking.patch
|
||||
1000_configure_userns
|
||||
1010_vietnamese_translation
|
||||
1020_fix_user_busy_errors
|
||||
|
||||
2
debian/rules
vendored
2
debian/rules
vendored
@@ -3,6 +3,8 @@
|
||||
|
||||
DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
|
||||
|
||||
export DEB_BUILD_HARDENING=1
|
||||
|
||||
# Enable PIE, BINDNOW, and possible future flags.
|
||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
|
||||
|
||||
Reference in New Issue
Block a user