On Sun, Feb 26, 2017 at 11:42:26PM +0100, Greg Kurz wrote: > The local_lgetxattr() callback is vulnerable to symlink attacks because > it calls lgetxattr() which follows symbolic links in all path elements but > the rightmost one. > > This patch introduces a helper to emulate the non-existing fgetxattrat() > function: it is implemented with /proc/self/fd which provides a trusted > path that can be safely passed to lgetxattr(). > > local_lgetxattr() is converted to use this helper and opendir_nofollow(). > > This partly fixes CVE-2016-9602. > > Signed-off-by: Greg Kurz <[email protected]> > --- > v2: - introduce /proc based fgetxattrat_nofollow() > --- > hw/9pfs/9p-posix-acl.c | 16 ++-------------- > hw/9pfs/9p-util.c | 12 ++++++++++++ > hw/9pfs/9p-util.h | 2 ++ > hw/9pfs/9p-xattr-user.c | 8 +------- > hw/9pfs/9p-xattr.c | 31 ++++++++++++++++++++++++------- > hw/9pfs/9p-xattr.h | 2 ++ > 6 files changed, 43 insertions(+), 28 deletions(-)
Reviewed-by: Stefan Hajnoczi <[email protected]>
signature.asc
Description: PGP signature
