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();