Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 02 Nov 2005 13:30:53 +0100
From:      des@des.no (=?iso-8859-1?q?Dag-Erling_Sm=F8rgrav?=)
To:        db <db@traceroute.dk>
Cc:        freebsd-security@freebsd.org, Jimmy Scott <jimmy@inet-solutions.be>
Subject:   Re: Non-executable stack
Message-ID:  <86pspjz0xu.fsf@xps.des.no>
In-Reply-To: <200510291412.57656.db@traceroute.dk> (db@traceroute.dk's message of "Sat, 29 Oct 2005 14:12:57 %2B0000")
References:  <200510270608.51571.db@traceroute.dk> <200510291242.16461.db@traceroute.dk> <20051029131519.GA22254@ada.devbox.be> <200510291412.57656.db@traceroute.dk>

next in thread | previous in thread | raw e-mail | index | archive | help

db <db@traceroute.dk> writes:
> Memory on ia32 can be writable and readable.  When it is readable it
> is also executable.  On other arch's like AMD64 and IA64, I believe
> memory can be readable, writable and executable.

Not quite.  IA32 can make individual segments readable, writable and /
or executable, but lacks the ability to do so on a per-page basis.
Since we have trampoline code at the top of the stack, the entire
stack segment must be executable.  Moving the trampoline off the stack
would solve the problem on all platforms.

W^X across the board is not an option - it would break HotSpot and
other JIT-based software.

DES
-- 
Dag-Erling Smørgrav - des@des.no




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86pspjz0xu.fsf>