[8365] in bugtraq

home help back first fref pref prev next nref lref last post

Re: Sendmail, lynx, Netscape, sshd, Linux kernel (twice)

daemon@ATHENA.MIT.EDU (Pavel Kankovsky)
Tue Nov 3 15:01:39 1998

Date: 	Mon, 2 Nov 1998 20:10:02 +0100
Reply-To: peak@kerberos.troja.mff.cuni.cz
From: Pavel Kankovsky <peak@KERBEROS.TROJA.MFF.CUNI.CZ>
To: BUGTRAQ@NETSPACE.ORG
In-Reply-To:  <Pine.LNX.4.00.9809060047320.1137-100000@lcamtuf.ids.pl>

On Sun, 6 Sep 1998, Michal Zalewski wrote:

> Maybe some sshd 1.x/2.0 stupidities:
> ------------------------------------
>
> Unprivledged luser could create symlink in ~/.ssh (or ~/.sshd) to
> virtually any file - root's ~/.ssh entries, /dev/urandom or anything else.
> Sshd, during login attempt, but before any authorization, will happily
> read these files, ignoring ownership (yep, it's running at UID 0). Could
> be dangerous, could be not. But even if not, still allows some interesting
> DoSes from privledged UID.

sshd (at least the late versions of 1.2) invokes an extra process
assuming the right privs to read these files. Have you actually tried
this?

machine1:~/.ssh $ ls -lL
...
-r--------   1 root     sys         9393 Nov  2 17:21 authorized_keys

machine2:~ $ slogin -v machine1
...
machine1: Remote: Could not open /home/xxxx/.ssh/authorized_keys for reading.
...

Credits to some inhabitant of comp.security.ssh.


> Linux kernel: execve & non-readable executables
> -----------------------------------------------
>
> Days ago - discussion about dumping executable-only processes using
> linker tricks. Don't force open doors. This process, just like any
> other, has 'dumpable' flag set to 1, and it could be ptraced (and
> coure could be dumped). Of course, it SHOULD be threated just like
> setuid process. Solution: http://dione.ids.pl/~lcamtuf/pliki/noreadx.c

<quote1>
  int init_module(void) {
    access=sys_call_table[__NR_access];
    while (sys_call_table[__NR_myexecve--]);
    sys_call_table[__NR_myexecve]=sys_call_table[__NR_execve];
    sys_call_table[__NR_execve]=_new_execve;
    return 0;
  }
</quote1>

Hmm, hmm... is this supposed to be a protection against lusers or
against lamers? Anyone can use the simple trial-and-error approach to find
the old syscall and invoke it, avoiding any extra checks the module does.

<quote2>
  NOTE: This fix has nothing to do with linker problems
        reported recently on BUGTRAQ.
</quote2>

Any patch of this kind is useless unless 1. the dynamic linker is fixed,
2. all unreadable binaries are statically linked.


--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"You can't be truly paranoid unless you're sure they have already got you."

home help back first fref pref prev next nref lref last post