[16720] in bugtraq

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

Re: machine independent protection from stack-smashing attack

daemon@ATHENA.MIT.EDU (Jan Echternach)
Mon Sep 11 20:28:36 2000

Mail-Followup-To: BUGTRAQ@SECURITYFOCUS.COM
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Message-ID:  <20000911221655.A10404@hokkaido.informatik.uni-rostock.de>
Date:         Mon, 11 Sep 2000 22:16:55 +0200
Reply-To: Jan Echternach <jan.echternach@informatik.uni-rostock.de>
From: Jan Echternach <echter@informatik.uni-rostock.de>
To: BUGTRAQ@SECURITYFOCUS.COM
In-Reply-To:  <NEBBKKLHLKDPHIKBMCGDCENBCAAA.ycharnot@identikey.com>; from
              ycharnot@IDENTIKEY.COM on Mon, Sep 11, 2000 at 09:55:35AM +0400

On Mon, Sep 11, 2000 at 09:55:35AM +0400, Yarrow Charnot wrote:
> > > Microsoft purposely doesn't allow pages to be non-executable,

Microsoft didn't really have a choice.  i386 hardware doesn't support
readable, but non-executable pages.

> In other words, if the attribute READ is set, the page is automatically made
> EXECUTABLE. If you trace NT and 9X kernels up to the point where they set

Same with Linux/i386, for instance.

> (NON-EXECUTABLE) on purpose. What purpose? Who on Earth would want to keep
> your data segments executable??? If you want to make it executable, one call

Segment based protections on i386 are different thing.  I think you
could emulate a flat memory model with non-executable pages by mapping
data and code segments to different linear addresses, but that would
half the availabe virtual memory and impose a performance penalty.

--
Jan

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