oss-sec mailing list archives

Re: Fixing the glibc runtime linker


From: Rich Felker <dalias () libc org>
Date: Fri, 20 Feb 2015 02:57:56 -0500

On Thu, Feb 19, 2015 at 11:50:37PM -0800, Paul Pluzhnikov wrote:
On Thu, Feb 19, 2015 at 11:34 PM, Rich Felker <dalias () libc org> wrote:

I don't see how you think this is a security issue at all.

I think the point is that 'system(argv[1])' is a hard mistake to make
by accident, but empty or relative RPATH is easy, and is not
immediately discoverable: you have to run 'readelf -d a.out' and then
think about what you see.

How is an empty or relative rpath easy? You have to explicitly add
-Wl,-rpath,[whatever] to the linker command line. Most people don't
even know this option exists, and those who do need to understand how
it works or they're not going to get results that even work. If an
rpath is needed and you accidentally make it cwd-relative rather than
absolute or origin-relative, running your program is just going to
fail when you're not in the 'right' working directory; this is such
obvious breakage that it should be caught immediately by even basic
testing.

Rich


Current thread: