From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Michal Simek <michal.simek@xilinx.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Michal Simek <monstr@monstr.eu>,
Linux-Arch <linux-arch@vger.kernel.org>
Subject: Re: [PATCH] dma-mapping: Add BUG_ON for uninitialized dma_ops
Date: Fri, 14 Jun 2013 09:14:43 -0700 [thread overview]
Message-ID: <1371226483.2726.19.camel@dabdike> (raw)
In-Reply-To: <201306141636.29390.arnd@arndb.de>
On Fri, 2013-06-14 at 16:36 +0200, Arnd Bergmann wrote:
> On Thursday 13 June 2013, James Bottomley wrote:
> > On Wed, 2013-06-12 at 17:06 +0200, Arnd Bergmann wrote:
> > > On Tuesday 11 June 2013, James Bottomley wrote:
> > > > Really, no, it's not a good idea at all. It invites tons of patches
> > > > littering the code with BUG_ONs where we might possibly get a NULL
> > > > dereference. All it does is add extra instructions to a code path for
> > > > no actual benefit.
> > > >
> > > > If you can answer the question: what more information does the BUG_ON
> > > > give you than the NULL deref Oops would not? then it might be
> > > > reasonable.
> > >
> > > The question is if a user can trigger the NULL dereference intentionally,
> > > in which case they might get the kernel to jump into a user-provided
> > > buffer.
> >
> > Can you elaborate on how they could do this? If you're thinking they
> > could alter the pointer and trigger the jump, then yes, but a BUG_ON
> > won't prevent that because the altered pointer won't be NULL.
>
> The attack that has been demonstrated a couple of times uses an anomymous
> mmap to virtual address 0. You fill that page with pointers to a
> function in your program. If there is a NULL pointer to some operations
> structure and kernel code calls an operation without checking the
> ops pointer first, it gets read from the NULL page and the kernel
> jumps into user space.
This is the MMAP_PAGE_ZERO exploit. The original exploit relied on a
leaky personality capability clearing mask and was fixed in 2.6.31 by
commit f9fabcb58a6d26d6efde842d1703ac7cfa9427b6
Author: Julien Tinnes <jt@cr0.org>
Date: Fri Jun 26 20:27:40 2009 +0200
personality: fix PER_CLEAR_ON_SETID
So it's not really relevant to 3.x kernels, is it?
James
next prev parent reply other threads:[~2013-06-14 16:14 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-03 12:44 [PATCH] dma-mapping: Add BUG_ON for uninitialized dma_ops Michal Simek
2013-06-10 9:00 ` Michal Simek
2013-06-11 2:34 ` Bjorn Helgaas
2013-06-11 11:02 ` Marek Szyprowski
2013-06-11 13:54 ` James Bottomley
2013-06-12 15:06 ` Arnd Bergmann
2013-06-13 8:51 ` Marek Szyprowski
2013-06-13 20:59 ` James Bottomley
2013-06-14 14:36 ` Arnd Bergmann
2013-06-14 16:14 ` James Bottomley [this message]
2013-06-19 15:20 ` Arnd Bergmann
2013-06-26 12:58 ` Michal Simek
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=1371226483.2726.19.camel@dabdike \
--to=james.bottomley@hansenpartnership.com \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=michal.simek@xilinx.com \
--cc=monstr@monstr.eu \
/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.