From: Cyrill Gorcunov <gorcunov@gmail.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Scotty Bauer <sbauer@eng.utah.edu>,
Linus Torvalds <torvalds@linux-foundation.org>,
Andy Lutomirski <luto@amacapital.net>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"kernel-hardening@lists.openwall.com"
<kernel-hardening@lists.openwall.com>, X86 ML <x86@kernel.org>,
Andi Kleen <ak@linux.intel.com>, Ingo Molnar <mingo@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
wmealing@redhat.com, criu@openvz.org,
Pavel Emelyanov <xemul@virtuozzo.com>,
Andrey Vagin <avagin@virtuozzo.com>
Subject: [kernel-hardening] Re: [PATCH v4 0/4] SROP Mitigation: Sigreturn Cookies
Date: Fri, 1 Apr 2016 15:57:46 +0300 [thread overview]
Message-ID: <20160401125746.GC2088@uranus.lan> (raw)
In-Reply-To: <87d1qafldd.fsf@x220.int.ebiederm.org>
On Thu, Mar 31, 2016 at 03:22:38PM -0500, Eric W. Biederman wrote:
>
> Cc' the Criu list to attempt to give them a heads up.
Thanks Eric! I managed to miss this thread (I try to scan
lkml descussions one a day in my inbox, but this one somehow
escaped, thank you!)
> Scotty Bauer <sbauer@eng.utah.edu> writes:
...
> >> Because if it does break anything, it needs to be turned off by
> >> default. That's a hard rule. And since that would be largely defeating
> >> the whole point o fthe series, I think we really need to have made
> >> sure nothing breaks before a patch series like this can be accepted.
> >>
> >> That said, if this is done right, I don't think it will break
> >> anything. CRIU may indeed be a special case, but CRIU isn't really a
> >> normal application, and the CRIU people may need to turn this off
> >> explicitly, if it does break.
> >>
> >> But yes, dosemu needs to be tested, and needs to just continue
> >> working. But does dosemu actually create a signal stack, as opposed to
> >> just playing with one that has been created for it? I thought it was
> >> just the latter case, which should be ok even with a magic cookie in
> >> there.
...
> > For what it's worth this series is breaking CRIU, I just tested:
> >
> > root@node0:/mnt/criu# criu restore -vvvv -o restore.log --shell-job
> > root@node0:/mnt/criu# tail -3 /var/log/syslog
> > Mar 29 17:12:08 localhost kernel: [ 3554.625535] Possible exploit attempt or buggy program!
> > Mar 29 17:12:08 localhost kernel: [ 3554.625535] If you believe this is an error you can disable SROP Protection by #echo 1 > /proc/sys/kernel/disable-srop-protection
> > Mar 29 17:12:08 localhost kernel: [ 3554.625545] test_[25305] bad frame in rt_sigreturn frame:000000000001e540 ip:7f561542cf20 sp:7ffe004ecfd8 orax:ffffffffffffffff in libc-2.19.so[7f561536c000+1bb0]
> > root@node0:/mnt/criu# echo 1 > /proc/sys/kernel/disable-srop-protection
> > root@node0:/mnt/criu# criu restore -vvvv -o restore.log --shell-job
> > slept for one second
> > slept for one second
> > slept for one second
> > slept for one second
> > root@node0:/mnt/criu#
>
> Which means that if checkpoint/restart is going to continue to be
> something that is possible in Linux it should be possible to
> save/restore the per process sig_cookie. Perhaps with a prctl?
Yes please. Currently (together with other aims) we're trying to
remove "root-only" requirement from criu, so user would be able
to c/r non-privileged processes without sudo/su. Thus I presume
such prctl will be cap-sysadmin only and we will have to run some
suid'ed daemon for it or something.
> This should be addressed as part of this patchset as making that
> information too easily accessible/changable will defeat the security
> guarantees. Making it too difficult to do destroys the ability to
> migrate a process from one kernel to another. As the existence of CRIU
> attests it is desirable to have a checkpoint/restart capability in the
> kernel.
To change sigframe an attacked process must have had some code
already injected and this cookie guard will help but not _that_
much I think.
> > I'm working on getting dosemu up and running-- are there any other applications
> > off the top of your head that I should be testing with?
>
> There are a set of POSIX functions setcontext, getcontext, makecontext
> and swapcontext that to the best of my knowledge deal in signal stacks.
> Although I don't know that they use sigreturn. Anything that makes use
> of those is potentially affected.
>
> Perhaps you can find binaries that care by looking for libraries and
> executables that import those elf symbols. glibc certainly provides
> them.
Cyrill
WARNING: multiple messages have this Message-ID (diff)
From: Cyrill Gorcunov <gorcunov@gmail.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Scotty Bauer <sbauer@eng.utah.edu>,
Linus Torvalds <torvalds@linux-foundation.org>,
Andy Lutomirski <luto@amacapital.net>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"kernel-hardening@lists.openwall.com"
<kernel-hardening@lists.openwall.com>, X86 ML <x86@kernel.org>,
Andi Kleen <ak@linux.intel.com>, Ingo Molnar <mingo@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
wmealing@redhat.com, criu@openvz.org,
Pavel Emelyanov <xemul@virtuozzo.com>,
Andrey Vagin <avagin@virtuozzo.com>
Subject: Re: [PATCH v4 0/4] SROP Mitigation: Sigreturn Cookies
Date: Fri, 1 Apr 2016 15:57:46 +0300 [thread overview]
Message-ID: <20160401125746.GC2088@uranus.lan> (raw)
In-Reply-To: <87d1qafldd.fsf@x220.int.ebiederm.org>
On Thu, Mar 31, 2016 at 03:22:38PM -0500, Eric W. Biederman wrote:
>
> Cc' the Criu list to attempt to give them a heads up.
Thanks Eric! I managed to miss this thread (I try to scan
lkml descussions one a day in my inbox, but this one somehow
escaped, thank you!)
> Scotty Bauer <sbauer@eng.utah.edu> writes:
...
> >> Because if it does break anything, it needs to be turned off by
> >> default. That's a hard rule. And since that would be largely defeating
> >> the whole point o fthe series, I think we really need to have made
> >> sure nothing breaks before a patch series like this can be accepted.
> >>
> >> That said, if this is done right, I don't think it will break
> >> anything. CRIU may indeed be a special case, but CRIU isn't really a
> >> normal application, and the CRIU people may need to turn this off
> >> explicitly, if it does break.
> >>
> >> But yes, dosemu needs to be tested, and needs to just continue
> >> working. But does dosemu actually create a signal stack, as opposed to
> >> just playing with one that has been created for it? I thought it was
> >> just the latter case, which should be ok even with a magic cookie in
> >> there.
...
> > For what it's worth this series is breaking CRIU, I just tested:
> >
> > root@node0:/mnt/criu# criu restore -vvvv -o restore.log --shell-job
> > root@node0:/mnt/criu# tail -3 /var/log/syslog
> > Mar 29 17:12:08 localhost kernel: [ 3554.625535] Possible exploit attempt or buggy program!
> > Mar 29 17:12:08 localhost kernel: [ 3554.625535] If you believe this is an error you can disable SROP Protection by #echo 1 > /proc/sys/kernel/disable-srop-protection
> > Mar 29 17:12:08 localhost kernel: [ 3554.625545] test_[25305] bad frame in rt_sigreturn frame:000000000001e540 ip:7f561542cf20 sp:7ffe004ecfd8 orax:ffffffffffffffff in libc-2.19.so[7f561536c000+1bb0]
> > root@node0:/mnt/criu# echo 1 > /proc/sys/kernel/disable-srop-protection
> > root@node0:/mnt/criu# criu restore -vvvv -o restore.log --shell-job
> > slept for one second
> > slept for one second
> > slept for one second
> > slept for one second
> > root@node0:/mnt/criu#
>
> Which means that if checkpoint/restart is going to continue to be
> something that is possible in Linux it should be possible to
> save/restore the per process sig_cookie. Perhaps with a prctl?
Yes please. Currently (together with other aims) we're trying to
remove "root-only" requirement from criu, so user would be able
to c/r non-privileged processes without sudo/su. Thus I presume
such prctl will be cap-sysadmin only and we will have to run some
suid'ed daemon for it or something.
> This should be addressed as part of this patchset as making that
> information too easily accessible/changable will defeat the security
> guarantees. Making it too difficult to do destroys the ability to
> migrate a process from one kernel to another. As the existence of CRIU
> attests it is desirable to have a checkpoint/restart capability in the
> kernel.
To change sigframe an attacked process must have had some code
already injected and this cookie guard will help but not _that_
much I think.
> > I'm working on getting dosemu up and running-- are there any other applications
> > off the top of your head that I should be testing with?
>
> There are a set of POSIX functions setcontext, getcontext, makecontext
> and swapcontext that to the best of my knowledge deal in signal stacks.
> Although I don't know that they use sigreturn. Anything that makes use
> of those is potentially affected.
>
> Perhaps you can find binaries that care by looking for libraries and
> executables that import those elf symbols. glibc certainly provides
> them.
Cyrill
next prev parent reply other threads:[~2016-04-01 12:57 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-29 19:53 [kernel-hardening] [PATCH v4 0/4] SROP Mitigation: Sigreturn Cookies Scott Bauer
2016-03-29 19:53 ` Scott Bauer
2016-03-29 19:53 ` [kernel-hardening] [PATCH v4 1/4] SROP Mitigation: Architecture independent code for signal cookies Scott Bauer
2016-03-29 19:53 ` Scott Bauer
2016-03-29 23:04 ` [kernel-hardening] " Linus Torvalds
2016-03-29 23:04 ` Linus Torvalds
2016-03-31 20:25 ` [kernel-hardening] " Eric W. Biederman
2016-03-31 20:25 ` Eric W. Biederman
2016-03-31 22:00 ` [kernel-hardening] " Linus Torvalds
2016-03-31 22:00 ` Linus Torvalds
2016-03-31 22:17 ` [kernel-hardening] " Eric W. Biederman
2016-03-31 22:17 ` Eric W. Biederman
2016-03-29 19:53 ` [kernel-hardening] [PATCH v4 2/4] x86: SROP Mitigation: Implement Signal Cookies Scott Bauer
2016-03-29 19:53 ` Scott Bauer
2016-03-29 19:53 ` [kernel-hardening] [PATCH v4 3/4] Sysctl: SROP Mitigation: Add Sysctl argument to disable SROP Scott Bauer
2016-03-29 19:53 ` Scott Bauer
2016-03-29 19:59 ` [kernel-hardening] " Andi Kleen
2016-03-29 19:59 ` Andi Kleen
2016-03-29 20:46 ` [kernel-hardening] " Scotty Bauer
2016-03-29 20:46 ` Scotty Bauer
2016-03-29 20:53 ` [kernel-hardening] " Andi Kleen
2016-03-29 20:53 ` Andi Kleen
2016-03-29 19:53 ` [kernel-hardening] [PATCH v4 4/4] Documentation: SROP Mitigation: Add documentation for SROP cookies Scott Bauer
2016-03-29 19:53 ` Scott Bauer
2016-03-29 20:12 ` [kernel-hardening] " Brian Gerst
2016-03-29 20:12 ` Brian Gerst
2016-04-24 16:27 ` [kernel-hardening] " Pavel Machek
2016-04-24 16:27 ` Pavel Machek
2016-03-29 21:29 ` [kernel-hardening] Re: [PATCH v4 0/4] SROP Mitigation: Sigreturn Cookies Andy Lutomirski
2016-03-29 21:29 ` Andy Lutomirski
2016-03-29 21:36 ` [kernel-hardening] " Scotty Bauer
2016-03-29 21:36 ` Scotty Bauer
2016-03-29 21:38 ` [kernel-hardening] " Andy Lutomirski
2016-03-29 21:38 ` Andy Lutomirski
2016-03-29 22:34 ` [kernel-hardening] " Linus Torvalds
2016-03-29 22:34 ` Linus Torvalds
2016-03-29 23:14 ` [kernel-hardening] " Scotty Bauer
2016-03-29 23:14 ` Scotty Bauer
2016-03-31 20:22 ` [kernel-hardening] " Eric W. Biederman
2016-03-31 20:22 ` Eric W. Biederman
2016-04-01 12:57 ` Cyrill Gorcunov [this message]
2016-04-01 12:57 ` Cyrill Gorcunov
2016-03-29 22:55 ` [kernel-hardening] " Daniel Micay
2016-04-24 16:14 ` Pavel Machek
2016-04-24 16:14 ` Pavel Machek
2016-03-29 22:54 ` [kernel-hardening] " Linus Torvalds
2016-03-29 22:54 ` Linus Torvalds
2016-03-29 22:55 ` [kernel-hardening] " Linus Torvalds
2016-03-29 22:55 ` Linus Torvalds
2016-03-29 23:05 ` [kernel-hardening] " Andy Lutomirski
2016-03-29 23:05 ` Andy Lutomirski
2016-03-29 23:11 ` [kernel-hardening] " Scotty Bauer
2016-03-29 23:11 ` Scotty Bauer
2016-03-29 23:25 ` [kernel-hardening] " Linus Torvalds
2016-03-29 23:25 ` Linus Torvalds
2016-03-29 23:34 ` [kernel-hardening] " Scotty Bauer
2016-03-29 23:34 ` Scotty Bauer
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=20160401125746.GC2088@uranus.lan \
--to=gorcunov@gmail.com \
--cc=ak@linux.intel.com \
--cc=avagin@virtuozzo.com \
--cc=criu@openvz.org \
--cc=ebiederm@xmission.com \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mingo@redhat.com \
--cc=sbauer@eng.utah.edu \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=wmealing@redhat.com \
--cc=x86@kernel.org \
--cc=xemul@virtuozzo.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.