Description
An issue was discovered in disable_priv_mode in shell.c in GNU Bash through
5.0 patch 11. By default, if Bash is run with its effective UID not equal
to its real UID, it will drop privileges by setting its effective UID to
its real UID. However, it does so incorrectly. On Linux and other systems
that support "saved UID" functionality, the saved UID is not dropped. An
attacker with command execution in the shell can use "enable -f" for
runtime loading of a new builtin, which can be a shared object that calls
setuid() and therefore regains privileges. However, binaries running with
an effective UID of 0 are unaffected.
Updated: 2019-12-05 20:04:57 UTC (commit 0aa5e7c87c8b55d2ec5c7f4ca1179cf75de91961)