Remix.run Logo
asdfsa32 4 hours ago

The issue is that it restricts from locking-down and securing the system with Write xor Execute memory. So it has system wide implication.

https://en.wikipedia.org/wiki/W%5EX

PhilipRoman 4 hours ago | parent [-]

W^X is typically per mapping, not per memory page and does not interfere with JIT compilation.

asdfsa32 3 hours ago | parent [-]

Sure, but it still means that the OS has to decide who is allowed to do it and to what extent. Sophisticated worms like Stuxnet would be much harder with strict W^X for example, since CVE-2010-2568 and the like would be much harder to execute.

orf 3 hours ago | parent | next [-]

> Sure, but it still means that the OS has to decide who is allowed to do it and to what extent

It has to do that anyway?

asdfsa32 2 hours ago | parent [-]

Only if it wants to allow Writable Memory to become Executable, or basically, allow JIT.

pjmlp 3 hours ago | parent | prev [-]

Signed binaries with the proper assigned OS capabilities.

asdfsa32 2 hours ago | parent [-]

Yes, but with JIT, you can't really verify what the application does upfront. That is the entire point.

pjmlp 2 hours ago | parent | next [-]

Capabilities are a way to control that, and the point being that only responsible proven applications get the certificate, hence how it all goes on iOS.

asdfsa32 2 hours ago | parent [-]

You're making the assumption that "responsible" is something provable, but that is not the case, it is specially not easy to prove software is secure from tampering its behaviour.

pjmlp 26 minutes ago | parent [-]

For that there is bytecode verification as intermediate step, and if you want to go crazy with security, hardware memory tagging with capabilities.

Which at this point most companies would rather save money and forbid JIT altogether.

Note that mainframes and micros have JIT environments that aren't at the same safety level as regular desktop PCs.

For example,

https://medium.com/@dhemanthc/ibm-i-architecture-how-timi-an...

2 hours ago | parent | prev [-]
[deleted]