linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@suse.de>
To: Bill Davidsen <davidsen@tmr.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>,
	Zinx Verituse <zinx@epicsol.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: ide-cd problems
Date: Thu, 5 Aug 2004 21:35:21 +0200	[thread overview]
Message-ID: <20040805193520.GA7571@suse.de> (raw)
In-Reply-To: <41128070.5050109@tmr.com>

On Thu, Aug 05 2004, Bill Davidsen wrote:
> Jens Axboe wrote:
> >On Tue, Aug 03 2004, Alan Cox wrote:
> >
> >>On Sad, 2004-07-31 at 21:00, Jens Axboe wrote:
> >>
> >>>If you want it to work that way, you have the have a pass-through filter
> >>>in the kernel knowing what commands are out there (including vendor
> >>>specific ones). That's just too ugly and not really doable or
> >>>maintainable, sorry.
> >>
> >>I disagree providing you turn it the other way around. The majority of
> >>scsi commands have to be protected because you can destroy the drive
> >>with some of them or bypass the I/O layers. (Eg using SG_IO to do writes
> >>to raw disk to bypass auditing layers)
> >>
> >>So you need CAP_SYS_RAWIO for most commands. You can easily build a list
> >>of sane commands for a given media type that are harmless and it fits
> >>the kernel role of a gatekeeper to do that.
> >
> >
> >So that's where we vehemently disagree - it fits the kernel role, if you
> >allow it to control policy all of a sudden. And it's not easy, unless
> >you do it per specific device (not just type, make and model).
> >
> >
> >>Providing the 'allowed' function is driver level and we also honour
> >>read/write properly for that case (so it doesnt bypass block I/O
> >>restrictions and fail the least suprise test) then it seems quite
> >>doable.
> >>
> >>For such I/O you'd then do
> >>
> >>	if(capable(CAP_SYS_RAWIO) || driver->allowed(driver, blah, cmdblock))
> >>
> >>If the allowed function filters positively "unknown is not allowed" and
> >>the default allowed function is simply "no" it works.
> >
> >
> >Until there's a new valid command for some device, in which case you
> >have to update your kernel?
> 
> As opposed to now when a new command comes along and the driver doesn't 
> generate it until you update your kernel? Reading a CD doesn't take 

Weak example. Lots of commands aren't issued directly by the device
driver, in fact very few are. The driver does not have to be updated to
handle new commands. If you add policy filtering, it does.

> exotic commands, and given the choice of having users able to send 
> arbitrary commands to the device and not access it at all, I would say 
> "not at all" would be good.

Then don't make your cdrom device accesable.

> >>We'd end up with a list of allowed commands for all sorts of operations
> >>that don't threaten the machine while blocking vendor specific wonders
> >>and also cases where users can do stuff like firmware erase.
> 
> There was a note on another list titled "Why did this work?" (from 
> memory) where someone accidentally run a firmware update as a normal 
> user and it worked. While this was a benign event, it points out that 
> there is a hole here far beyond my earlier worry that someone would 
> update a CD-RW.
>
> >
> >
> >Sorry, I think this model is totally bogus and I'd absolutely refuse to
> >merge any such beast into the block layer sg code.
> >
> So what is your solution? Or do you believe that allowing users to have 
> unmonitored access to devices is acceptable?

If differentiating use of a cdrom implies filtering commands, then
that's not acceptable to me. So they either have access to the device or
they don't.

> Is this problem only in ide-cd, or does it affect other devices like 
> ZIP, USB, etc, which do or may look like SCSI?

Affects all devices that accept SG_IO.

-- 
Jens Axboe


  reply	other threads:[~2004-08-05 19:37 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-30 19:36 ide-cd problems Zinx Verituse
2004-07-31 15:36 ` Jens Axboe
2004-07-31 18:27   ` Zinx Verituse
2004-07-31 20:00     ` Jens Axboe
2004-07-31 21:02       ` Zinx Verituse
2004-08-01  4:07         ` Alexander E. Patrakov
2004-08-01 15:57           ` Jens Axboe
2004-08-02  3:20             ` Horst von Brand
2004-08-02 12:25               ` Jens Axboe
2004-08-02 20:44               ` Bill Davidsen
2004-08-02 13:45             ` tabris
2004-08-02 13:56               ` Jens Axboe
2004-08-02 14:26                 ` Andreas Metzler
2004-08-02 14:33                   ` Jens Axboe
2004-08-02 14:38                 ` tabris
2004-08-02 14:50                   ` Jens Axboe
2004-08-02 16:30           ` Bill Davidsen
2004-08-03  7:17             ` Jens Axboe
2004-08-02 17:16         ` Zinx Verituse
2004-08-05  5:40         ` Jens Axboe
2004-08-05 21:06           ` Alan Cox
2004-08-06  5:44             ` Jens Axboe
     [not found]               ` <20040806062331.GE10274@suse.de>
2004-08-06 12:14                 ` Alan Cox
2004-08-06 14:32                   ` Jens Axboe
2004-08-06 15:14                     ` Charles Cazabon
2004-08-06 15:13                       ` Jens Axboe
2004-08-07 14:01                       ` Alan Cox
2004-08-06 17:26                     ` dleonard
2004-08-06 22:47                       ` Jens Axboe
2004-08-07 14:04                         ` Alan Cox
2004-08-07 21:54                           ` Alan Cox
2004-08-07  3:11                     ` Jason L Tibbitts III
2004-08-09  8:39                       ` Jens Axboe
2004-08-07 14:08                     ` Alan Cox
2004-08-09  8:49                       ` Jens Axboe
2004-08-02 23:54       ` Alan Cox
2004-08-03  5:53         ` Jens Axboe
2004-08-03 16:17           ` Zinx Verituse
2004-08-04  5:01             ` Jens Axboe
2004-08-05 15:52               ` Alan Cox
2004-08-05 17:46                 ` Jens Axboe
2004-08-05 20:58                   ` Alan Cox
2004-08-05 18:53                 ` Bill Davidsen
2004-08-05 18:46           ` Bill Davidsen
2004-08-05 19:35             ` Jens Axboe [this message]
2004-08-05 21:02               ` Alan Cox
2004-08-06  5:42                 ` Jens Axboe
2004-08-03 15:28         ` Doug Maxey
2004-08-03 17:28           ` Alan Cox
2004-08-09 20:24       ` Bill Davidsen
2004-08-02 16:41   ` Bill Davidsen
2004-08-03 15:50     ` Horst von Brand

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=20040805193520.GA7571@suse.de \
    --to=axboe@suse.de \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=davidsen@tmr.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=zinx@epicsol.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).