News for hackers. Stuff that matters.
Re:Lucet: Native WebAssembly Compiler and Runtime by steveklabnik on Thursday March 28, 2019 @05:06PM (#19516606)
Wasm doesn't really have "arrays", so I don't think wasm checking them would really make sense. I guess you could argue that this is a distinction without a difference. You still won't get memory unsafety, which in my mind, is the higher order bit. YMMV of course.
Re:Lucet: Native WebAssembly Compiler and Runtime by ridiculous_fish on Thursday March 28, 2019 @08:21PM (#19517997)
You do get memory unsafety. OpenSSL compiled to wasm would still be vulnerable to Heartbleed. The JVM would prevent it.
Re:Lucet: Native WebAssembly Compiler and Runtime by steveklabnik on Thursday March 28, 2019 @08:36PM (#19518079)
Please re-read what Rusky said; the point is about the boundary. Yes, wasm programs can mess up their own memory. That’s not what I’m talking about. I should be more clear about this in the future though, thanks.
Re:Lucet: Native WebAssembly Compiler and Runtime by ridiculous_fish on Thursday March 28, 2019 @09:01PM (#19518227)
I don't understand this point. We don't say that C is memory safe because of the kernel boundary, even though this boundary does provide important safety guarantees.

edit: I guess this viewpoint makes sense for the use case of "thousands of wasm programs in the same process." They are protected from each other, in a sense qualitatively the same as Unix processes. This is still a much weaker guarantee than the JVM provides.

Re:Lucet: Native WebAssembly Compiler and Runtime by littlestymaar on Friday March 29, 2019 @07:46AM (#19520759)
The goal is to allow existing C code to run, so in the end you'll need the same freedom when it comes to memory access. The difference between this and plain process is that the sandbox uses a capability-based security model, instead of giving all the user's rights to the process [1].

[1]: https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webas...

Re:Lucet: Native WebAssembly Compiler and Runtime by hawski on Friday March 29, 2019 @12:03PM (#19522808)
There is not a mention of memory safety in this post. It's very confusing term in this context. I wouldn't call running a binary with syscall interception (with qemu for example) as "memory safe".
Re:Lucet: Native WebAssembly Compiler and Runtime by nindalf on Friday March 29, 2019 @02:45AM (#19519633)
If the memory safety of your own code is a high priority, consider writing in Rust. If you’re trying to get a C codebase to run everywhere, then that’s fine too but it seems unrealistic to expect the wasm run time to magically make it memory safe.
Re:Lucet: Native WebAssembly Compiler and Runtime by pjmlp on Thursday March 28, 2019 @06:24PM (#19517242)
It is possible to corrupt data on the stack due to out of bounds.
Re:Lucet: Native WebAssembly Compiler and Runtime by steveklabnik on Thursday March 28, 2019 @06:35PM (#19517341)
Yes, bugs can always exist.
Re:Lucet: Native WebAssembly Compiler and Runtime by rixed on Thursday March 28, 2019 @11:06PM (#19518813)
Not sure what you mean by that, but probably not that stack corruption is a necessary evil of any language.
Re:Lucet: Native WebAssembly Compiler and Runtime by pjmlp on Friday March 29, 2019 @02:23AM (#19519564)
Not when you use a VM that actually cares about security at all layers, but anyway WASM is doing everything better. /s
Re:Lucet: Native WebAssembly Compiler and Runtime by Rusky on Saturday March 30, 2019 @04:46PM (#19531739)
Using such a VM requires rewriting existing C code. Wasm's approach allows that to happen incrementally, where it matters, by using memory safe languages like Rust, instead of relying on the VM.
Re:Lucet: Native WebAssembly Compiler and Runtime by pjmlp on Sunday March 31, 2019 @05:15AM (#19534614)
Not at all, as proven by memory tagging on Solaris/SPARC, iOS and upcoming Android/ARM v8.3.

So leaving memory tagging out of WASM was a deliberate design decision.

There are already better alternatives to write secure code if using C is not a requirement, so again nothing new on WASM other than its hype.

Re:Lucet: Native WebAssembly Compiler and Runtime by Rusky on Sunday March 31, 2019 @12:22PM (#19536385)
Sure, and we use software memory tagging with things like LLVM sanitizers. It's great.

But a) the hardware Wasm needs to support doesn't have tagging, and b) the software equivalent requires support from the allocator and has a large performance penalty.

So yes, it was a deliberate design decision, taken in order to support existing C programs on the Web.

This is really getting tiring- learning from the past is great, but fetishizing it to the point of denying anything new has any value is... not.

Re:Lucet: Native WebAssembly Compiler and Runtime by pjmlp on Tuesday April 02, 2019 @08:01AM (#19553103)
WASM wouldn't even be a thing if it wasn't for Mozilla politics against PNaCL.

Tiring is the continuous advertising that WASM is the second coming of Christ in VM implementations.

Re:Lucet: Native WebAssembly Compiler and Runtime by Rusky on Tuesday April 02, 2019 @07:30PM (#19559561)
Those "politics" were there for a reason. Wasm is a solid improvement over PNaCl, which I will note you have curiously left out of all your other old-VM-worship claims.