Re: Buffer overflow prevention

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Theo de Raadt wrote:

> W^X is more than just stack protection.  It means that all pages that
> are writeable are also marked as not executable.  At least, it means
> this is how the system by default operates, until some process asks
> for something that has both write and execute permission.
> 
> On some architectures W^X is easy, since the native architecture has a
> execute-permitted bit per page (sparc, sparc64, alpha, hppa, m88k).
> On other architectures, it is difficult and various hacks have to be
> done to make it work (i386, powerpc).

It's not difficult at all on x86, but having non-overlapping Segments
for Code and Data/Stack would limit the virtual address space. This
doesn't matter if your machine is equipped with 2 GB (RAM+Pagefile) or
less, because all pages of those 2 GB can completely be mapped to linear
addresses in either the code or data/stack segment. As soon as there's
more memory available, you have to decide how large the code and
data/stack segment should be.
Adressing more than 4 GB on x86 is an ugly hack anyways -PSE as well as
PAE.

-- 
 * Origin: (2:2480/8057.2)

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


[Index of Archives]     [Linux Security]     [Netfilter]     [PHP]     [Yosemite News]     [Linux Kernel]

  Powered by Linux