From: "Theodore Ts'o" <tytso@mit.edu>
To: Nigel Cunningham <ncunningham@linuxmail.org>
Cc: Chris Friesen <cfriesen@nortelnetworks.com>,
Jurriaan <thunder7@xs4all.nl>,
linux-kernel@vger.kernel.org
Subject: Re: What does tainting actually mean?
Date: Wed, 28 Apr 2004 08:10:09 -0400 [thread overview]
Message-ID: <20040428121009.GA2844@thunk.org> (raw)
In-Reply-To: <opr65ic90vshwjtr@laptop-linux.wpcb.org.au>
On Wed, Apr 28, 2004 at 03:18:35PM +1000, Nigel Cunningham wrote:
> On Wed, 28 Apr 2004 01:19:32 -0400, Chris Friesen <cfriesen@nortelnetworks.com wrote:
> >
> >There has already been a case mentioned of a binary module that messed
> >up something that was only visible once that module was unloaded and
> >another one loaded. It all depends totally on usage patterns.
>
> I don't know what module you're talking about, but surely there must be
> something that could be done kernel-side to protect against such problems.
> Reference counting or such like? I guess if it was a hardware issue, but
> then again that might be an issue with too many assumptions being made
> about prior state? Maybe I am being too naive :>
The problem is with corrupted data structures, pointers, etc. An
evil/incompetently written driver can screw up data structures long
after it has been unloaded. Historically, there was a time when a
certain set of propeitary six-letter video company beginning with 'N'
and ending with 'a' had serious bugs which would corrupt the kernel
and create random kernel panics far removed from the actual source of
the problems.
Stack overflows in a badly written device driver can overwrite task
structures and cause apparent filesystem problems which are blamed on
the hapless filesystem authors instead of where the blame properly
lies, namely the device driver author.
The thing we could do kernel-side is to implement full VM protections.
This is the microkernel approach; the problem though is the
performance overhead of having to go through protection boundaries,
setting up kernel-module-specific VM page tables, etc., etc. At some
level, if people could implement these propeitary code bases in
userspace, then there would be no need to risk corrupting internal
data structures, and no need to "taint" the kernel. But usually there
are performance reasons why the driver authors choose not to go down
that path.
- Ted
next prev parent reply other threads:[~2004-04-28 12:11 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-28 4:00 What does tainting actually mean? Nigel Cunningham
2004-04-28 4:27 ` Jurriaan
2004-04-28 4:30 ` Nigel Cunningham
2004-04-28 5:19 ` Chris Friesen
2004-04-28 5:18 ` Nigel Cunningham
2004-04-28 12:10 ` Theodore Ts'o [this message]
2004-04-28 12:48 ` Måns Rullgård
2004-04-28 13:04 ` Muli Ben-Yehuda
2004-04-28 13:27 ` Måns Rullgård
2004-04-28 14:22 ` Muli Ben-Yehuda
2004-04-28 15:56 ` Joseph Pingenot
2004-04-28 16:01 ` Valdis.Kletnieks
2004-05-03 12:45 ` Pavel Machek
2004-05-03 18:50 ` Stefan Smietanowski
2004-04-28 5:51 ` Karim Yaghmour
2004-04-28 6:51 ` Keith Duthie
2004-04-28 10:26 ` Ville Herva
2004-05-06 15:25 ` Anthony de Boer
[not found] <04Apr28.020259edt.41801@gpu.utcc.utoronto.ca>
2004-04-28 6:18 ` Nigel Cunningham
2004-04-28 10:37 ` Bartlomiej Zolnierkiewicz
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=20040428121009.GA2844@thunk.org \
--to=tytso@mit.edu \
--cc=cfriesen@nortelnetworks.com \
--cc=linux-kernel@vger.kernel.org \
--cc=ncunningham@linuxmail.org \
--cc=thunder7@xs4all.nl \
/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