Bug 88398 - sys-devel/gdb: default config, potential security problem?
|
Bug#:
88398
|
Product: Gentoo Security
|
Version: unspecified
|
Platform: All
|
|
OS/Version: All
|
Status: RESOLVED
|
Severity: normal
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: security@gentoo.org
|
Reported By: taviso@gentoo.org
|
|
Component: Default Configs
|
|
|
URL:
|
|
Summary: sys-devel/gdb: default config, potential security problem?
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2005-04-08 12:48 0000
|
by default gdb reads .gdbinit from the current working directory, which
obviously can contain commands to execute arbitrary commands. A useful feature,
but it isnt hard to imagine a method of social engineering an administrator in
to compromising his account, eg
user: "help! when i run lynx in /foo it dumps core, please check it out."
admin helpfully runs gdb in /foo and user has silently taken over his account.
or perhaps compromise a colleagues account if they share access to cvs
repository, etc, etc.
example:
$ printf "set args 0wned\nexec /bin/echo\nr\n" > /tmp/.gdbinit
$ cd /tmp
$ gdb
...
Using host libthread_db library "/lib/libthread_db.so.1".
0wned
Program exited normally.
(gdb)
I think we should only allow ~/.gdbinit, if the user wants the feature they can
simply add "source .gdbinit", perhaps this can be added with some comments
explaining the situation to the example gdbinit we distribute.
a few things other things that might improve this if other disagree:
* confirm current user owns the .gdbinit file.
* print lots of warnings that gdb should only be started in trusted
directories.
solar: looks good, should be an improvement, and can still be overridden (to
read other users .gdbinit's) if a user requires by adding 'source .gdbinit' to
~/.gdbinit.
note I've not tested that yet. will do in a few mins.
anyone chatted with upstream gdb maintainers about this ?
Ok cool we just got the bug # assigned.
It has the internal identification `gdb/1908'.
The individual assigned to look at your
report is: unassigned.
>Category: gdb
>Responsible: unassigned
>Synopsis: potential security problem
>Arrival-Date: Sat Apr 09 02:28:01 UTC 2005
gdb also reads ./.gdb_history I however have no idea if this can be sec
problem.
So yeah we want to use this patch for our own gdb-6.x?
solar: I had a look at the history file mechanism, It doesnt save history by
default, but should you enter set history save, either in gdb or in your
~/.gdbinit it will happily write onto a symlink, so enabling this feature and
starting gdb in an untrusted directory is not a good idea :)
It will read somebody elses .gdb_history, but apart from being able to insert
commands into the history buffer (doesnt seem like a great idea, but no obvious
attack via this vector).
I think we should 'set history filename ~/.gdb_history' in the gdbinit we
distribute with some comments, so that users who enable saving history across
sessions can see this option should be set as well.
solar/taviso any news on this one?
Fixed in .gdbinit handling in gdb-6.3-r2 and left the history alone as not all
arches have a default /etc/skel/.gdbinit file.
Current Keywords:
gdb-6.0: alpha -hppa ia64
gdb-6.0-r1:
gdb-6.1: s390
gdb-6.1.1: sparc
gdb-6.2: ppc
gdb-6.2.1: mips
gdb-6.2.1-r1: -sparc
gdb-6.3: ppc64 hppa amd64 arm x86
gdb-6.3-r1:
gdb-6.3-r2: ~arm ~hppa ~x86 ~amd64 ~ppc ~alpha ~sparc ~ppc64 ~mips