Exploitation Summary
EIP tracks 2 public exploits for CVE-2009-4147.
PoCs published by kingcope, Kingcope, stealth, bcoles, including Metasploit module exploits/freebsd/local/rtld_execl_priv_esc.
AI-analyzed exploit summary This exploit leverages a vulnerability in FreeBSD's Run-Time Link-Editor (rtld) to bypass restrictions on environment variables like LD_PRELOAD for setugid binaries, achieving local privilege escalation to root. The exploit manipulates the environment to load a malicious shared library via LD_PRELOAD, which then executes a shell with elevated privileges.
Description
The _rtld function in the Run-Time Link-Editor (rtld) in libexec/rtld-elf/rtld.c in FreeBSD 7.1 and 8.0 does not clear the (1) LD_LIBMAP, (2) LD_LIBRARY_PATH, (3) LD_LIBMAP_DISABLE, (4) LD_DEBUG, and (5) LD_ELF_HINTS_PATH environment variables, which allows local users to gain privileges by executing a setuid or setguid program with a modified variable containing an untrusted search path that points to a Trojan horse library, different vectors than CVE-2009-4146.
Exploits (2)
This exploit leverages a vulnerability in FreeBSD's Run-Time Link-Editor (rtld) to bypass restrictions on environment variables like LD_PRELOAD for setugid binaries, achieving local privilege escalation to root. The exploit manipulates the environment to load a malicious shared library via LD_PRELOAD, which then executes a shell with elevated privileges.
This Metasploit module exploits a vulnerability in FreeBSD's run-time link-editor (rtld) where the `unsetenv()` function fails to remove `LD_*` environment variables, allowing arbitrary shared object loading via `LD_PRELOAD` for privilege escalation.