Subject: Re: one user segfaulting other users' program - should this be possible?
To: None <netbsd-help@netbsd.org>
From: theo borm <theo_nbsdhelp@borm.org>
List: netbsd-help
Date: 05/29/2006 16:03:30
Ok,
Things are getting a bit clearer now.
The crashes do not seem to be related to the mentioned problem after all
as I can also provoke the crash by running a program on the same
X-server from a different machine, and this (in my mind) rules out the
possibility that this has anything to do with dynamic libraries.
Probably some kind of TK-misinterpreting-X-messages issue.
kind regards, Theo
theo borm wrote:
> Hi,
>
> I just encountered a problem with Perl/TK programs being segfaulted by
> other programs. Attached is a very simple example that will segfault
> when one uses specific "gimp" dialogs (also happens when gimp starts).
>
> I /believe/ that the problem is /related/ to Perl/Tk and Tcl not wanting
> to be used together as described in this sourceforge post:
> http://sourceforge.net/mailarchive/message.php?msg_id=11820453
>
> Though I would be /very/ interested in a solution of just this problem
> (other than telling my users not to use the gimp), there is another
> problem that I'm much more concerned about: If user A starts the program
> below, then user B using gimp will segfault it.
>
> What can be done about this? shouldn't (in general) one users' mischief
> be unable to affect another user?
>
> Please correct me if I'm wrong (my view of things may be too simplistic,
> but I'm eager to learn...), but there seems to be a larger issue at
> stake: Apparently program X uses a library x with a name clash with a
> function in library y used by program Y. First program X is started by
> user A, working as expected, then malicious (or igorant) programmer B
> comes along, starting (his own) program Y, loading (his own) library y,
> which subsequently faithfully segfaults user A's program X. How
> exploitable would this be?
>
> with kind regards,
>
> Theo Borm
>
>
>
> #!/usr/pkg/bin/perl
> use Tk;
> $mainwindow=MainWindow->new( -title => "Just a Button");
> $mainwindow->Button( -text => 'Exit',
> -command => sub { exit(1); } )->pack;
> MainLoop();