If the stack and heap are non-executable and page tables can't be modified then it's hard to inject code. Whether unikernels actually apply this hardening is another matter.
Isn’t this where ROP gadgets come in?
Isn’t this where ROP gadgets come in?