All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vasiliy Kulikov <segooon@gmail.com>
To: Dan Rosenberg <drosenberg@vsecurity.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ipc: shm: fix information leak to userland
Date: Sat, 30 Oct 2010 19:40:02 +0400	[thread overview]
Message-ID: <20101030154002.GA14257@albatros> (raw)
In-Reply-To: <1288450814.3964.3.camel@dan>

Hi Dan,

On Sat, Oct 30, 2010 at 11:00 -0400, Dan Rosenberg wrote:
> This one already got taken care of by Kees Cook:
> 
> http://lkml.org/lkml/2010/10/6/486

After 25 days it is still not in linux-next.  Also the second hunk is IMO odd
as all five fields are initialized:


	case IPC_OLD:
	    {
		struct shminfo out;

		if(in->shmmax > INT_MAX)
			out.shmmax = INT_MAX;
		else
			out.shmmax = (int)in->shmmax;

		out.shmmin	= in->shmmin;
		out.shmmni	= in->shmmni;
		out.shmseg	= in->shmseg;
		out.shmall	= in->shmall; 

		return copy_to_user(buf, &out, sizeof(out));
	    }

/* Obsolete, used only for backwards compatibility */
struct  shminfo {
        int shmmax;
        int shmmin;
        int shmmni;
        int shmseg;
        int shmall;
};

And I see no padding hole in shminfo.



> Thanks,
> Dan
> 
> > Structure shmid_ds is copied to userland with shm_unused{,2,3}
> > fields unitialized.  It leads to leaking of contents of kernel stack
> > memory.
> > Cc: stable@kernel.org
> > Acked-by: Al Viro <viro@ZenIV.linux.org.uk>
> > Signed-off-by: Vasiliy Kulikov <segooon@gmail.com>
> > ---
> >  Compile tested.
> >  ipc/shm.c |    1 +
> >  1 files changed, 1 insertions(+), 0 deletions(-)
> > diff --git a/ipc/shm.c b/ipc/shm.c
> > index fd658a1..7d3bb22 100644
> > --- a/ipc/shm.c
> > +++ b/ipc/shm.c
> > @@ -479,6 +479,7 @@ static inline unsigned long copy_shmid_to_user(void __user *buf, struct shmid64_
> >  	    {
> >  		struct shmid_ds out;
> >  
> > +		memset(&out, 0, sizeof(out));
> >  		ipc64_perm_to_ipc_perm(&in->shm_perm, &out.shm_perm);
> >  		out.shm_segsz	= in->shm_segsz;
> >  		out.shm_atime	= in->shm_atime;
> 
> 

Thanks,

-- 
Vasiliy

  reply	other threads:[~2010-10-30 15:40 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1288450677.3964.1.camel@dan>
2010-10-30 15:00 ` [PATCH] ipc: shm: fix information leak to userland Dan Rosenberg
2010-10-30 15:40   ` Vasiliy Kulikov [this message]
2010-10-30  9:04 Vasiliy Kulikov
2010-10-30  9:04 ` Vasiliy Kulikov
2010-10-30  9:06 ` Al Viro
2010-10-30  9:06   ` Al Viro
2010-10-30 14:22   ` Vasiliy Kulikov
2010-10-30 14:22     ` Vasiliy Kulikov

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=20101030154002.GA14257@albatros \
    --to=segooon@gmail.com \
    --cc=drosenberg@vsecurity.com \
    --cc=linux-kernel@vger.kernel.org \
    /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.