tech-security archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: How trustworthy is that I/O device?



On Nov 6, 2013, at 2:32 PM, Matt Thomas wrote:

> 
> On Nov 6, 2013, at 2:24 PM, Warner Losh <imp%bsdimp.com@localhost> wrote:
> 
>> 
>> On Nov 6, 2013, at 2:21 PM, Matt Thomas wrote:
>> 
>>> 
>>> On Nov 4, 2013, at 2:34 PM, Erik Fair <fair%netbsd.org@localhost> wrote:
>>> 
>>>> All OSes have a problem with USB and potentially all other hot-plug I/O 
>>>> busses: can you trust the device that was just plugged into the bus? How 
>>>> much I/O do you permit to it before explicit authorization of some kind?
>>> 
>>> I've always wondered why we "trust" file systems and panic they aren't
>>> what we expect.  We don't do that for networking.  If seems if we encounter
>>> an inconsistency, we mark the f/s as read-only and either return an error
>>> or complete the action if possible.
>> 
>> Panic now to prevent crazy later. If the structures are inconsistent, then 
>> relying on underlying assumptions in the code is so unsafe we simply can't 
>> do it at all.  How do we know that going to read-only doesn't create some 
>> kind of excess data disclosure path?
> 
> What I am saying is that you shouldn't trust it.  We shouldn't have underlying
> assumptions in the code.  We don't in the networking code.  Treat it as if 
> it's
> probably trying to cause a denial of service.  I'm saying don't panic, either
> forcibly unmount or treat it as uncacheable and read-only.

I agree we shouldn't have these assumptions in the code, but when you are 
freeing a free inode, how much access to the data do you really want to give? 
You might find certain conditions where you want EIO for all future I/os, 
rather than simple read-only.

Warner




Home | Main Index | Thread Index | Old Index