The first problem is the way ld.so handles environment variables: in
order to provide a safe environment for setuid applications it removes
certain the environment variables that can influence application
execution such as LD_PRELOAD and LD_LIBRARY_PATH. Unfortunately there
was a bug that could cause ld.so to not remove them under some
conditions. This would affect setuid applications if they execute
another binary without dropping privileges or cleaning up the
environment themselves.
The second problem is the locale handling in glibc. glibc checks for
characters like `/' in the LANG and LC_* environment variables to see if
someone is trying to trick a program into reading arbitrary files.
Unfortunately there were some logic errors in those checks which could
be used to make a setuid application use arbitrary files for localization
settings, which can be exploited to trick it into executing arbitrary
code.
These problems have been fixed in version 2.1.3-13, and we recommend
that ...
Get the latest Linux and open source security news straight to your inbox.