Re: [linux-usb-devel] Re: [Security] [vendor-sec] [BUG/PATCH/RFC]Oops while completing async USB via usbdevio

From: Linus Torvalds
Date: Tue Sep 27 2005 - 12:02:56 EST




On Tue, 27 Sep 2005, Sergey Vlasov wrote:
>
> The initial patch added get_task_struct()/put_task_struct() calls to
> fix this - are they forbidden too?

They are sure as hell not something that a _driver_ is supposed to use.

> It at least has sigio_perm(), which prevents exploiting it to send
> signals to tasks you don't have access to.

And the point is, you can do that _too_.

Do it right. Don't cache pointers to threads. Use the pid.

Your security arguments are _pointless_. As proven by the fact that SIGIO
happily uses a pid, and gets it right. Try to use _that_ infrastructure
instead, since that's what it's _meant_ for.

The fact is, having drivers much around with thread locking is not
acceptable. Drivers _will_ get it wrong, and even if they didn't, it's
kernel internal data structures that drivers have no business in touching.

Linus
-
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/