qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Greg Kurz <groug@kaod.org>, qemu-devel@nongnu.org
Cc: "Léo Gaspard" <leo@gaspard.io>
Subject: Re: [Qemu-devel] [PATCH 4/5] 9pfs: local: metadata file for the VirtFS root
Date: Fri, 5 May 2017 12:11:14 -0500	[thread overview]
Message-ID: <2f21803c-7b62-0090-3035-0e48622a46e4@redhat.com> (raw)
In-Reply-To: <149399504988.29022.13818395938763860712.stgit@bahia.lan>

[-- Attachment #1: Type: text/plain, Size: 2094 bytes --]

On 05/05/2017 09:37 AM, Greg Kurz wrote:
> When using the mapped-file security, credentials are stored in a metadata
> directory located in the parent directory. This is okay for all paths with
> the notable exception of the root path, since we don't want and probably
> can't create a metadata directory above the virtfs directory on the host.
> 
> This patch introduces a dedicated metadata file, sitting in the virtfs root
> for this purpose. It relies on the fact that the "." name necessarily refer

s/refer/refers/

> to the virtfs root.
> 
> As for the metadata directory, we don't want the client to see this file.
> The current code only cares for readdir() but there are many other places
> to fix actually. The filtering logic is hence put in a separate function.
> 
> Before:
> 
> # ls -ld
> drwxr-xr-x. 3 greg greg 4096 May  5 12:49 .
> # chown root.root .
> chown: changing ownership of '.': Is a directory
> # ls -ld
> drwxr-xr-x. 3 greg greg 4096 May  5 12:49 .
> 
> After:
> 
> # ls -ld
> drwxr-xr-x. 3 greg greg 4096 May  5 12:49 .
> # chown bin.bin .
> # ls -ld
> drwxr-xr-x. 3 root root 4096 May  5 12:50 .

Huh? How does chown bin.bin result in root.root? Copy-and-paste error?

> 
> and from the host:
> 
> ls -al .virtfs_metadata_root
> -rwx------. 1 greg greg 26 May  5 12:50 .virtfs_metadata_root
> $ cat .virtfs_metadata_root
> virtfs.uid=0
> virtfs.gid=0

So what happens if the guest tries to manipulate
./.virtfs_metadata_root? I know you are filtering it so that readdir()
and such can't see it, but do you have sane errors for the guest's
attempt to circumvent those hidden names?

> 
> Reported-by: Léo Gaspard <leo@gaspard.io>
> Signed-off-by: Greg Kurz <groug@kaod.org>
> ---
>  hw/9pfs/9p-local.c |   88 ++++++++++++++++++++++++++++++++++++----------------
>  1 file changed, 61 insertions(+), 27 deletions(-)
> 
> diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

  reply	other threads:[~2017-05-05 17:11 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-05 14:36 [Qemu-devel] [PATCH 0/5] 9pfs: local: fix metadata of mapped-file security mode Greg Kurz
2017-05-05 14:37 ` [Qemu-devel] [PATCH 1/5] 9pfs: check return value of v9fs_co_name_to_path() Greg Kurz
2017-05-05 16:55   ` Eric Blake
2017-05-05 17:30     ` Greg Kurz
2017-05-05 14:37 ` [Qemu-devel] [PATCH 2/5] 9pfs: local: resolve special directories in paths Greg Kurz
2017-05-05 16:59   ` Eric Blake
2017-05-09  9:12     ` Greg Kurz
2017-05-18  8:41       ` Greg Kurz
2017-05-18 14:19         ` Eric Blake
2017-05-05 14:37 ` [Qemu-devel] [PATCH 3/5] 9pfs: local: simplify file opening Greg Kurz
2017-05-05 17:01   ` Eric Blake
2017-05-09  9:23     ` Greg Kurz
2017-05-18  8:42       ` Greg Kurz
2017-05-18 14:23       ` Eric Blake
2017-05-18 15:51         ` Greg Kurz
2017-05-05 14:37 ` [Qemu-devel] [PATCH 4/5] 9pfs: local: metadata file for the VirtFS root Greg Kurz
2017-05-05 17:11   ` Eric Blake [this message]
2017-05-09  9:31     ` Greg Kurz
2017-05-05 14:37 ` [Qemu-devel] [PATCH 5/5] 9pfs: local: forbid client access to metadata Greg Kurz
2017-05-05 17:13   ` Eric Blake
2017-05-09  9:39     ` Greg Kurz
2017-05-05 15:25 ` [Qemu-devel] [PATCH 0/5] 9pfs: local: fix metadata of mapped-file security mode no-reply
2017-05-08 15:33 ` Leo Gaspard
2017-05-09  9:42   ` Greg Kurz

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=2f21803c-7b62-0090-3035-0e48622a46e4@redhat.com \
    --to=eblake@redhat.com \
    --cc=groug@kaod.org \
    --cc=leo@gaspard.io \
    --cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).