Vigil@nce - glibc: integer overflow of ld.so
May 2010 by Marc Jacob
This bulletin was written by Vigil@nce : http://vigilance.fr/
SYNTHESIS OF THE VULNERABILITY
An attacker can use a malformed ELF file, to generate an integer overflow in ld.so, in order to execute code.
Creation date: 12/05/2010
DESCRIPTION OF THE VULNERABILITY
The ld.so program is the linker/loader provided with the glibc. It is used to load dependencies or to check a program:
/lib/ld-linux.so.2 —verify /bin/ls
/lib/ld-linux.so.2 —list /bin/ls
However, if the loaded program has a malformed ELF header, an integer overflow occurs in the elf_get_dynamic_info() function of the ld.so/elf/rtld.c file. This program runs with user privileges, so this vulnerability does not lead to a privilege elevation.
In order to exploit this vulnerability, a service has for example to check (—verify/—list) an ELF coming from an untrusted source. In this case, an attacker can execute code with privileges of the service.
An attacker can therefore use a malformed ELF file, to generate an integer overflow in ld.so, in order to execute code.
ACCESS TO THE COMPLETE VIGIL@NCE BULLETIN