Re: Buffer overflow prevention

From: pageexecat_private
Date: Mon Aug 18 2003 - 02:18:45 PDT

  • Next message: Joyce, MP (Matthew) : "RE: Need help. Proof of concept 100% security."

    Subject:  Re: Buffer overflow prevention
    From:     Theo de Raadt <deraadt () cvs ! openbsd ! org>
    Date:     2003-08-14 21:43:10
    
    > > It's not difficult at all on x86, but having non-overlapping Segments
    > > for Code and Data/Stack would limit the virtual address space.
    >
    > I am not sure if you have heard of this neat technology called "shared
    > libraries".  Either you have never heard of them, or you are unaware
    > of they work on an x86.  Let me be completely blunt.  What you are
    > suggesting is unfeasable.  Please go do some learning before making
    > any more utterly ridiculous proposals.
    
    Oh, the strong words of a strong man ;-). Seriously, you are wrong, the
    segmentation based non-executable pages feature of PaX (SEGMEXEC [1]) does
    exactly this, it creates separate (non-overlapping) segments for data/code
    and has no problems with coping with shared libraries (the key to this is
    vma mirroring [2]).
    
    [...]
    > Anyways, on an i386 you can do W^X somewhat.  Not as perfectly as you
    > can on cpus that have a per-page X bit...
    
    You are wrong again, PaX provides perfect per-page non-executable pages
    using segmentation (SEGMEXEC), there are no restrictions on the ordering
    of data/code pages like in OpenBSD.
    
    [...]
    > This would give per-page execution stuff like we have on better cpus.
    > We've not worked on this yet; it is less valuable since I think it is
    > only newer Xeons and high-end AMD cpus which support this.  And we've
    > never found documentation for it either :)
    
    Page 286 in [3] and section 5.6 in [4] have enough information about this
    feature (and of course linux 2.4/2.6 source code).
    
    [1] http://pageexec.virtualave.net/docs/segmexec.txt
    [2] http://pageexec.virtualave.net/docs/vmmirror.txt
    [3] http://www.amd.com/us-
    en/assets/content_type/white_papers_and_tech_docs/26094.PDF
    [4] http://www.amd.com/us-
    en/assets/content_type/white_papers_and_tech_docs/24593.pdf
    



    This archive was generated by hypermail 2b30 : Mon Aug 18 2003 - 10:23:08 PDT