xfs
[Top] [All Lists]

Re: [PATCH] xfs: prevent leaking uninitialized stack memory in FSGEOMETR

To: Dan Rosenberg <drosenberg@xxxxxxxxxxxxx>
Subject: Re: [PATCH] xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Mon, 14 Feb 2011 22:46:29 +1100
Cc: aelder@xxxxxxx, xfs-masters@xxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, stable@xxxxxxxxxx, security@xxxxxxxxxx
In-reply-to: <1297347904.13370.9.camel@dan>
References: <1297347904.13370.9.camel@dan>
User-agent: Mutt/1.5.20 (2009-06-14)
On Thu, Feb 10, 2011 at 09:25:04AM -0500, Dan Rosenberg wrote:
> The FSGEOMETRY_V1 ioctl (and its compat equivalent) calls out to
> xfs_fs_geometry() with a version number of 3.  This code path does not
> fill in the logsunit member of the passed xfs_fsop_geom_t, leading to
> the leaking of four bytes of uninitialized stack data to potentially
> unprivileged callers.  Since all other members are filled in all code
> paths and there are no padding bytes in this structure, it's safe to
> avoid an expensive memset() in favor of just clearing this one field.

If this really is a security problem, then it should use a memset.
This is not a performance critical path and there are differences in
the padding of the structure between 32 bit and 64 bit ioctl
variants (it has a compat ioctl handler) and that can only be
correctly handled by memset().

Also, using a memset means we won't have the problem of introducing
new uninitialised fields or padding if we ever rev the structure
again...

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>