On 2016-09-06, Philippe Meunier <[email protected]> wrote:
> Theo de Raadt wrote:
>>It is probably staring you in the face.
>
> Okay, I assume this requires -current then? I'm using 6.0-release on
> i386 and I don't see it:
>
> $ readelf -l /usr/local/jdk-1.8.0/bin/java | egrep -i wx
> $
>
> (yes, I know that java was linked with wxneeded (I get an "mprotect W^X
> violation" message in the logs when I run java), it's just an example)
>
> Philippe
>
>
Java was not linked with the wxneeded linker option in 6.0.
To run java (either on 6.0 or -current) the executables need to be on a
filesystem mounted with the wxallowed flag.
Besides readelf, you can also use 'objdump -p', binaries so annotated
will look like this:
$ objdump -p /usr/local/chrome/chrome
/usr/local/chrome/chrome: file format elf64-x86-64
Program Header:
PHDR off 0x0000000000000040 vaddr 0x0000000000000040 paddr
0x0000000000000040 align 2**3
filesz 0x00000000000002a0 memsz 0x00000000000002a0 flags r-x
INTERP off 0x00000000050152ce vaddr 0x00000000051152ce paddr
0x00000000051152ce align 2**0
filesz 0x0000000000000013 memsz 0x0000000000000013 flags r--
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr
0x0000000000000000 align 2**20
filesz 0x00000000050152ce memsz 0x00000000050152ce flags r-x
LOAD off 0x00000000050152ce vaddr 0x00000000051152ce paddr
0x00000000051152ce align 2**20
filesz 0x0000000002c3b706 memsz 0x0000000002c3b706 flags r--
LOAD off 0x0000000007c510e0 vaddr 0x0000000007e510e0 paddr
0x0000000007e510e0 align 2**20
filesz 0x00000000004cb0a0 memsz 0x0000000000654768 flags rw-
DYNAMIC off 0x00000000080d8938 vaddr 0x00000000082d8938 paddr
0x00000000082d8938 align 2**3
filesz 0x0000000000000420 memsz 0x0000000000000420 flags rw-
NOTE off 0x00000000050152e4 vaddr 0x00000000051152e4 paddr
0x00000000051152e4 align 2**2
filesz 0x0000000000000018 memsz 0x0000000000000018 flags r--
EH_FRAME off 0x0000000006effa70 vaddr 0x0000000006fffa70 paddr
0x0000000006fffa70 align 2**2
filesz 0x00000000002818f4 memsz 0x00000000002818f4 flags r--
STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr
0x0000000000000000 align 2**3
filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
OPENBSD_WXNEEDED off 0x0000000000000000 vaddr 0x0000000000000000 paddr
0x0000000000000000 align 2**3
filesz 0x0000000000000000 memsz 0x0000000000000000 flags --x
OPENBSD_RANDOMIZE off 0x0000000007c510e0 vaddr 0x0000000007e510e0 paddr
0x0000000007e510e0 align 2**3
filesz 0x0000000000000008 memsz 0x0000000000000008 flags rw-
RELRO off 0x0000000007c510e0 vaddr 0x0000000007e510e0 paddr
0x0000000007e510e0 align 2**4
filesz 0x00000000004a5f18 memsz 0x00000000004a5f18 flags r--
[...snip...]