Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1217296

Re: [musl] RFC: adding Linux vsyscall-disable and similar backwards-incompatibility flags to ELF headers?

From Rich Felker <dalias@libc.org>
Newsgroups linux.kernel
Subject Re: [musl] RFC: adding Linux vsyscall-disable and similar backwards-incompatibility flags to ELF headers?
Date 2015-09-02 05:00 +0200
Message-ID <q46rf-x8-7@gated-at.bofh.it> (permalink)
References <q44z8-6cH-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Tue, Sep 01, 2015 at 05:51:44PM -0700, Andy Lutomirski wrote:
> Hi all-
> 
> Linux has a handful of weird features that are only supported for
> backwards compatibility.  The big one is the x86_64 vsyscall page, but
> uselib probably belongs on the list, too, and we might end up with
> more at some point.
> 
> I'd like to add a way that new programs can turn these features off.
> In particular, I want the vsyscall page to be completely gone from the
> perspective of any new enough program.  This is straightforward if we
> add a system call to ask for the vsyscall page to be disabled, but I'm
> wondering if we can come up with a non-syscall way to do it.
> 
> I think that the ideal behavior would be that anything linked against
> a sufficiently new libc would be detected, but I don't see a good way
> to do that using existing toolchain features.
> 
> Ideas?  We could add a new phdr for this, but then we'd need to play
> linker script games, and I'm not sure that could be done in a clean,
> extensible way.

Is there a practical problem you're trying to solve? My understanding
is that the vsyscall nonsense is fully emulated now and that the ways
it could be used as an attack vector have been mitigated.

If this is not the case, I have what sounds like an elegant solution,
if it works: presumably affected versions of glibc that used this used
it for all syscalls, so if the process has made any normal syscalls
before using the vsyscall addresses, you can assume it's a bug/attack
and and just raise SIGSEGV. If there are corner cases this doesn't
cover, maybe the approach can still be adapted to work; it's cleaner
than introducing header cruft, IMO.

Rich
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

RFC: adding Linux vsyscall-disable and similar backwards-incompatibility  flags to ELF headers? Andy Lutomirski <luto@amacapital.net> - 2015-09-02 03:00 +0200
  Re: RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Ian Lance Taylor <iant@google.com> - 2015-09-02 03:20 +0200
    Re: RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Andy Lutomirski <luto@amacapital.net> - 2015-09-02 04:30 +0200
  Re: RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Brian Gerst <brgerst@gmail.com> - 2015-09-02 04:00 +0200
    Re: RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Andy Lutomirski <luto@amacapital.net> - 2015-09-02 04:30 +0200
      Re: RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Brian Gerst <brgerst@gmail.com> - 2015-09-02 16:00 +0200
        Re: RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Andy Lutomirski <luto@amacapital.net> - 2015-09-02 16:10 +0200
  Re: [musl] RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Rich Felker <dalias@libc.org> - 2015-09-02 05:00 +0200
    Re: [musl] RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Andy Lutomirski <luto@amacapital.net> - 2015-09-02 05:40 +0200
      Re: [musl] RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Rich Felker <dalias@libc.org> - 2015-09-02 06:20 +0200
        Re: [musl] RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Andy Lutomirski <luto@amacapital.net> - 2015-09-02 06:40 +0200
          Re: [musl] RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Rich Felker <dalias@libc.org> - 2015-09-02 07:00 +0200
            Re: [musl] RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Andy Lutomirski <luto@amacapital.net> - 2015-09-02 07:10 +0200
              Re: [musl] RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Rich Felker <dalias@libc.org> - 2015-09-02 07:30 +0200
          Re: [musl] RFC: adding Linux vsyscall-disable and similar  backwards-incompatibility flags to ELF headers? Austin S Hemmelgarn <ahferroin7@gmail.com> - 2015-09-02 14:50 +0200

csiph-web