Re: [PATCH] udevadm-info: Don't access sysfs 'resource<N>' files

From: Greg KH
Date: Mon Mar 18 2013 - 12:40:24 EST


On Mon, Mar 18, 2013 at 10:24:40AM -0600, Alex Williamson wrote:
> On Sun, 2013-03-17 at 15:00 +0100, Kay Sievers wrote:
> > On Sun, Mar 17, 2013 at 2:38 PM, Alex Williamson
> > <alex.williamson@xxxxxxxxxx> wrote:
> > > I'm assuming that the device only breaks because udevadm is dumping the
> > > full I/O port register space of the device and that if an actual driver
> > > was interacting with it through this interface that it would work. Who
> > > knows how many devices will have read side-effects by udevadm blindly
> > > dumping these files. Thanks,
> >
> > Sysfs is a too public interface to export things there which make
> > devices/driver choke on a simple read() of an attribute.
>
> That's why the default permissions for the file do not allow users to
> read it. I wish we could do something as clever as the MMIO resource
> files, but I/O port spaces don't allow mmap for the predominant
> architecture. Eventually VFIO is meant to replace this access and does
> move device register access behind ioctls, but for now legacy KVM device
> assignment relies on these files and so might some UIO drivers.
>
> > This is nothing specific to udevadm, any tool can do that. Udevadm
> > will never read any of the files during normal operation. The admin
> > explicitly asked udevadm with a specific command to dump all the stuff
> > the device offers.
>
> Isn't it possible udevadm could drop privileges or filter out non-world
> readable files?

And you are going to do the same thing for bash? All other shells?

Come on, the user specifically asked to read this file, as root, and
udev did so. Just like bash would.

Please fix the kernel if this is a real problem, you aren't going to be
able to patch all userspace programs, that's not the proper solution
here.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/