5 ms·
> [mapping memory WX] hasn't been forbidden on any of the prior platforms that Dolphin supports Well, rarely completely forbidden, but e.g. I think OpenBSD has
by floatboth 5y ago
> [mapping memory WX] hasn't been forbidden on any of the prior platforms that Dolphin supports
Well, rarely completely forbidden, but e.g. I think OpenBSD has been W^X by default for quite some time (though IIRC with a WX allowed flag per… FS mount?). Now on FreeBSD it's not default but it's there, and if you turn it on, you have to mark WX-mapping binaries by running `elfctl -e +wxneeded`.
Firefox actually became W^X compliant all the way back in 2015: https://jandemooij.nl/blog/wx-jit-code-enabled-in-firefox/ https://jandemooij.nl/blog/wx-jit-code-enabled-in-firefox/
- jolux 5y agoI didn't realize SpiderMonkey was W^X compliant. Does that mean Apple's arguments about third party browser security on iOS are less well-founded than I had believed? My impression was that performant JITs were incompatible with W^X.
- voxic11 5y agoNo the issue on ios isn't that W^X is enforced, its that you can't mark a page that was writable as executable (whereas W^X just implies that a page can't be both writable and executable at the same time). Firefox has been W^X compliant by default since 2016 as its considered more secure in general.
- jolux 5y agoAh I see. The iOS restriction makes sense, even though it's more aggressive.
- floatboth 5y agoThis Dolphin article is literally about making a performant JIT run on an OS that is, among other things, strictly W^X :) > arguments about third party browser security on iOS Well, W^X is just one mitigation technique. But also, the "security" arguments have always been kinda dubious. I don't think there's that much difference (at least philosophically) between an interpreter bug causing arbitrary crap to happen inside your app's sandbox and a JIT bug doing the same.
- jolux 5y agoAs the sibling comment mentions, apparently the iOS restriction is that you cannot execute pages that have ever been marked as writable, which is much stricter than W^X.