[7572] in bugtraq

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

Re: resend

daemon@ATHENA.MIT.EDU (Casper Dik)
Fri Aug 7 18:46:31 1998

Date: 	Fri, 7 Aug 1998 21:37:21 +0200
Reply-To: Casper Dik <casper@HOLLAND.SUN.COM>
From: Casper Dik <casper@HOLLAND.SUN.COM>
X-To:         Steve Bellovin <smb@RESEARCH.ATT.COM>
To: BUGTRAQ@NETSPACE.ORG
In-Reply-To:  Your message of "Thu, 06 Aug 1998 13:53:40 EDT." 
              <199808061753.NAA14285@postal.research.att.com>

>No one worried much about stack-smashing in those days.  It would have
>been a difficult attack, though, since the stack grew up, and local
>variables would have been allocated after the save area.  (While the
>current routine's save area didn't have the actual return address, by
>convention it had a back-pointer to the previous save area at a fixed
>offset from the start of the area.  The attack would have involved
>creating a bogus save area with register 14 pointing to the new code,
>then smashing the back pointer in the current save area.)


I don't think stacks growing upward help; remember that most exploits
in C involve on eof the unbounded copy routines and that those
overwrite the invocation record of the function calling sprintf/str* etc.
(Or one level deeper as on SPARC).

When the stack grows up, sprintf/str* will overwrite their own invocation
record/return address.  So it's actually easier as there's no code executed
between the return from str*/sprintf , instead those function return
directly to the exploit code.

Casper

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