lkml.org 
[lkml]   [2014]   [Jun]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.10 61/77] aio: fix kernel memory disclosure in io_getevents() introduced in v3.10
    Date
    3.10-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Benjamin LaHaise <bcrl@kvack.org>

    commit edfbbf388f293d70bf4b7c0bc38774d05e6f711a upstream.

    A kernel memory disclosure was introduced in aio_read_events_ring() in v3.10
    by commit a31ad380bed817aa25f8830ad23e1a0480fef797. The changes made to
    aio_read_events_ring() failed to correctly limit the index into
    ctx->ring_pages[], allowing an attacked to cause the subsequent kmap() of
    an arbitrary page with a copy_to_user() to copy the contents into userspace.
    This vulnerability has been assigned CVE-2014-0206. Thanks to Mateusz and
    Petr for disclosing this issue.

    This patch applies to v3.12+. A separate backport is needed for 3.10/3.11.

    [jmoyer@redhat.com: backported to 3.10]
    Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
    Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
    Cc: Mateusz Guzik <mguzik@redhat.com>
    Cc: Petr Matousek <pmatouse@redhat.com>
    Cc: Kent Overstreet <kmo@daterainc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    fs/aio.c | 2 ++
    1 file changed, 2 insertions(+)

    --- a/fs/aio.c
    +++ b/fs/aio.c
    @@ -717,6 +717,8 @@ static long aio_read_events_ring(struct
    if (head == ctx->tail)
    goto out;

    + head %= ctx->nr_events;
    +
    while (ret < nr) {
    long avail;
    struct io_event *ev;



    \
     
     \ /
      Last update: 2014-06-28 21:41    [W:3.100 / U:0.368 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site