EGI CSIRT:Alerts/liblinker-2010-10-18
Introduction
==
Earlier today, Tavis Ormandy released information about a vulnerability in GNU libc, complete with an exploit that on many systems can give any local user root privileges. (For full details, see the link below.)
This vulnerability has been labelled CVE-2010-3847, and is present on many Linux distributions, including RHEL/CentOS/SL 5 (but *not* RHEL 3 and 4 and their derivatives). Vendor patches are not yet available.
Details
=
As far as is known, the vulnerability can only be exploited if users can write to a file system that contains binaries with suid root permissions. (Since it is necessary for the attacker to create a hard link to a suid root binary.)
This is, for instance, the case if /bin is located on the same filesystem as /tmp (or any other user writable location, like /var/tmp, /home, /var/lib/texmf, and so on). This is unfortunately a common configuration.
Mitigation
==
To make it impossible to make the required hard link, directories containing suid/sgid binaries can be made to appear to as separate file systems by doing
mount -o bind /sbin /sbin
for each such directory.
Please note that these commands must be re-run whenever the system is rebooted, for example by adding them to a suitable init script.
A baseline list of directories with suid/sgid binaries on a typical RHEL 5 system is:
/bin /sbin /usr/bin /usr/libexec /usr/lpp /usr/sbin
You should check for any additional site specific locations using a command like
find / -type f \( -perm /u+s -o -perm /g+s \)
that will list all files with suid/sgid permissions.
Recommendations
===
Apply the mitigation method above for all relevant locations.
You may wish to suspend user logins and job submission until these steps have been taken; please refer to your local site policy.
Apply vendor updates as soon as they become available.
References