4 ms·
The last sentence of the first paragraph really struck me >In general, no single section has both write and execute permissions as this could compromise the se
by bgilroy26 11y ago
The last sentence of the first paragraph really struck me
>In general, no single section has both write and execute permissions as this could compromise the security of the system.
- 0xdada 11y agoYou can read more about it here: https://en.wikipedia.org/wiki/W%5EX https://en.wikipedia.org/wiki/W%5EX
- bgilroy26 11y agoThank you!
- ant6n 11y agoIs that actually enforced in modern linux kernels? I thought it would be possible to call mmap(..., PROT_READ | PROT_WRITE | PROT_EXEC, ...)
- ant6n 11y agoIf this ever gets enforced it could be annoying for software that generates code at runtime, which may require quick access to some run-time data for particular instructions. It may be useful to force huge pages for dynamically generated code to improve pressure on the TLB. It can slow down code generation if the pages with code in it have to be converted to write and then converted back to execute every time a new bit of dynamic code gets added. Additionally, if the generated code instructions require access to a bit of dynamic data, it may not be able to actually reach a separate data page using immediate offsets to pc on some architectures (e.g. ARM).
- Hydraulix989 11y agoOpenBSD kernel enforces it (even inside the kernel, not just user mode processes): http://marc.info/?l=openbsd-tech&m=142120787308107&w=2 http://marc.info/?l=openbsd-tech&m=142120787308107&w=2
- bgilroy26 11y agoMike Larkin re:W^X a few days ago: https://youtu.be/A7vtAAeW6zo https://youtu.be/A7vtAAeW6zo