Re: [PATCH 1/3] netfilter: Fix copy_to_user too small size parametre.

From: Dan Carpenter
Date: Thu Mar 01 2012 - 06:36:08 EST


On Thu, Mar 01, 2012 at 11:18:09AM +0100, Pablo Neira Ayuso wrote:
> On Thu, Mar 01, 2012 at 02:46:30PM +0530, santosh nayak wrote:
> > From: Santosh Nayak <santoshprasadnayak@xxxxxxxxx>
> >
> > While copying to userspace, the size of source is 29byte where as
> > size parametre is 32 byte. Its leaking extra-information from
> > kernel space to user space.
> > Replace EBT_FUNCTION_MAXNAMELEN by XT_EXTENSION_MAXNAMELEN.
>
> There's no information leak.
>

Where do we clear "m"?

include/linux/netfilter/x_tables.h
287 struct xt_match {
288 struct list_head list;
289
290 const char name[XT_EXTENSION_MAXNAMELEN];
291 u_int8_t revision;
292

There is a 2 byte holes here between "revision" and "match()". We
copy three bytes past the end of name, so we include revision and
the hole.

But maybe we memset it somewhere? I'm not sure.

293 /* Return true or false: return FALSE and set *hotdrop = 1 to
294 force immediate packet drop. */
295 /* Arguments changed since 2.6.9, as this must now handle
296 non-linear skb, using skb_header_pointer and
297 skb_ip_make_writable. */
298 bool (*match)(const struct sk_buff *skb,
299 struct xt_action_param *);

regards,
dan carpenter

Attachment: signature.asc
Description: Digital signature