mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Austin S Hemmelgarn <ahferroin7@gmail.com>
To: Andy Lutomirski <luto@amacapital.net>, Rich Felker <dalias@libc.org>
Cc: Kees Cook <keescook@chromium.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	libc-alpha <libc-alpha@sourceware.org>,
	"musl@lists.openwall.com" <musl@lists.openwall.com>,
	gcc@gcc.gnu.org, Binutils <binutils@sourceware.org>
Subject: Re: [musl] RFC: adding Linux vsyscall-disable and similar backwards-incompatibility flags to ELF headers?
Date: Wed, 2 Sep 2015 08:48:21 -0400	[thread overview]
Message-ID: <55E6F015.4030308@gmail.com> (raw)
In-Reply-To: <CALCETrUeyF3TzXsrgYhdEz4BTSp4FUh_nh=bssixx1yuNGA57Q@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1645 bytes --]

On 2015-09-02 00:32, Andy Lutomirski wrote:
> On Tue, Sep 1, 2015 at 9:18 PM, Rich Felker <dalias@libc.org> wrote:
>> On Tue, Sep 01, 2015 at 08:39:27PM -0700, Andy Lutomirski wrote:
>>> On Tue, Sep 1, 2015 at 7:54 PM, Rich Felker <dalias@libc.org> wrote:
>>>> 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.
>>>
>>> Unfortunately, I don't think this will work.  It's never been possible
>>> to use the vsyscalls for anything other than gettimeofday, time, or
>>> getcpu, so I doubt we can detect affected glibc versions that way.
>>
>> I thought the idea of the old vsyscall was that you always call it
>> rather than using a syscall instruction and it decides whether it can
>> do it in userspace or needs to make a real syscall. But if it was only
>> called from certain places, then yes, I think you're right that my
>> approach doesn't work.
>
> No, it's actually just three separate functions, one for each of
> gettimeofday, time, and getcpu.
Did the old versions of glibc always use vsyscall calling for these 
syscalls?  If they did, then we could (probably) safely disable the 
vsyscall stuff the first time we see any of these called through the 
normal syscall paths.



[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 3019 bytes --]

      parent reply	other threads:[~2015-09-02 12:48 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-02  0:51 Andy Lutomirski
2015-09-02  1:12 ` Ian Lance Taylor
2015-09-02  2:23   ` Andy Lutomirski
2015-09-02  1:53 ` Brian Gerst
2015-09-02  2:21   ` Andy Lutomirski
2015-09-02 13:57     ` Brian Gerst
2015-09-02 14:08       ` Andy Lutomirski
2015-09-02  2:54 ` [musl] " Rich Felker
2015-09-02  3:39   ` Andy Lutomirski
2015-09-02  4:18     ` Rich Felker
2015-09-02  4:32       ` Andy Lutomirski
2015-09-02  4:55         ` Rich Felker
2015-09-02  5:03           ` Andy Lutomirski
2015-09-02  5:22             ` Rich Felker
2015-09-02 12:48         ` Austin S Hemmelgarn [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55E6F015.4030308@gmail.com \
    --to=ahferroin7@gmail.com \
    --cc=binutils@sourceware.org \
    --cc=dalias@libc.org \
    --cc=gcc@gcc.gnu.org \
    --cc=keescook@chromium.org \
    --cc=libc-alpha@sourceware.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).