]> granicus.if.org Git - shadow/commit
su: properly clear child PID
authorTobias Stoeckmann <tobias@stoeckmann.org>
Thu, 23 Feb 2017 15:47:29 +0000 (09:47 -0600)
committerSerge Hallyn <serge@hallyn.com>
Thu, 23 Feb 2017 15:47:29 +0000 (09:47 -0600)
commit08fd4b69e84364677a10e519ccb25b71710ee686
tree933189f5126e27d74dde3b5d86ff4aaa49947190
parent24130c882d60e2d30e9c185fa5cf2b7e09b4c6cd
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