Basically you got it completely backwards. The typical native app (which is not Rust or Java but C/C++/Obj-C, etc) only keeps the unsafe part of Electron, and even drops the sandbox (whose holes can always be patched, but total absense cannot).
It is very disingenuous to say that other native apps keep the unsafe parts; there are no such parts at all.
It should be telling that Microsoft, in one of their most successful products of late, have punched an RCE sized hole in that sandbox unwittingly.
E.g. we can drop Exchange for email for a safe alternative like Sendmail.
Do they? This is just from last month: https://www.zdnet.com/article/google-patches-second-chrome-z...
>You brought open source and - totally unrelated - sendmail into it.
No, you brought the totally unrelated "Avoid Microsoft for stuff that is important, and don't install their software on your machines if you can help it." as if Microsoft is the only place to ever had a RCE...
As for bringing in unrelated stuff, no that was still within the context of Microsoft's meeting software. It was someone else that brought in the OS.
Why would it count? The situation would have more easily occured and be even worse with a C/C++ native app.
(Not that Rust's safety over C/C++ is an "opinion" or subject to argumentation).
I think it will take a long time before we can call ElectronJS secure. there are regular sandbox escapes and that is from what we know publicly
“Can it escape the Chromium renderer sandbox? Or is that sandbox disabled?”
the real answer is more complicated as it is not necessarily a global setting and depends on what you call a “sandbox”
But if not addressed to me, there is no need to pay, you can start here: - https://www.electronjs.org/docs/tutorial/security - https://github.com/electron/electron/security/advisories
As you can see there are plenty of considerations and pitfalls to take into account. Best option is to enable contextIsolation for everything.
Further, Electron security is closely tied to Chrome security so that is one deep rabbit hole
Or maybe let's use some research language made by Wirth, and get access to all 10 of packages and 5 devs worldwide using it :-)
I didn't mention any programming language.
https://securelist.com/zero-day-vulnerability-in-telegram/83...
and others...
https://www.notebookcheck.net/Researchers-at-Symantec-discov...
> MS Teams ElectronJS security: remote-require is disabled & filtered, nodeIntegration is false, webview creation is filtered and normally removes insecure params/options. You cannot simply import child_process and execute arbitrary code or create a webview with a custom preload option.
it looks like they did everything right.
I would like this thread to go beyond outrage at how Microsoft handled this, or another excuse to bash Electron. What lessons can developers using Electron take from this? (No, "don't use Electron" doesn't count.)