4 ms·
The simple version: WebAssembly does protect the host from a compromised process. WebAssembly doesn't do jack to prevent a process (and whatever data it contro
by wtracy 8y ago
The simple version:
WebAssembly does protect the host from a compromised process. WebAssembly doesn't do jack to prevent a process (and whatever data it controls) from being compromised in the first place.
- hackcasual 8y agoIt does in the sense that it totally protects the stack and doesn't allow creating new executable memory. Control flow can be manipulated, but then only via changing function pointers to other functions of the same type
- pjmlp 8y agoControl flow can also be manipulated via memory corruption, making the existing code take other decisions, due to non valid semantic states.
- hackcasual 8y agoSure, but that's even weaker, since you can't even create new control flows, just cause surprising ones.
- pjmlp 8y agoIt is enough to work around authentication checks, for example.
- garmaine 8y agoIt doesn’t even do a particularly good job of that, given the size of the WebAssembly code base and reasonable bugs-per-kLOC assumptions. If you really want to protect the host then run a small, probably correct interpreter or JIT that is simplified enough to prove properties about and have an implementation small enough to be potentially bug free.