sudo -- missing input sanitising

ID DSA-946
Type debian
Reporter Debian
Modified 2006-01-20T00:00:00


The former correction to vulnerabilities in the sudo package worked fine but were too strict for some environments. Therefore we have reviewed the changes again and allowed some environment variables to go back into the privileged execution environment. Hence, this update.

The configuration option "env_reset" is now activated by default. It will preserve only the environment variables HOME, LOGNAME, PATH, SHELL, TERM, DISPLAY, XAUTHORITY, XAUTHORIZATION, LANG, LANGUAGE, LC_, and USER in addition to the separate SUDO_ variables.

For completeness please find below the original advisory text:

> It has been discovered that sudo, a privileged program, that provides limited super user privileges to specific users, passes several environment variables to the program that runs with elevated privileges. In the case of include paths (e.g. for Perl, Python, Ruby or other scripting languages) this can cause arbitrary code to be executed as privileged user if the attacker points to a manipulated version of a system library. > > This update alters the former behaviour of sudo and limits the number of supported environment variables to LC_*, LANG, LANGUAGE and TERM. Additional variables are only passed through when set as env_check in /etc/sudoers, which might be required for some scripts to continue to work.

For the old stable distribution (woody) this problem has been fixed in version 1.6.6-1.6.

For the stable distribution (sarge) this problem has been fixed in version 1.6.8p7-1.4.

For the unstable distribution (sid) the same behaviour will be implemented soon.

We recommend that you upgrade your sudo package. For unstable "Defaults = env_reset" need to be added to /etc/sudoers manually.