-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Open
Labels
Description
- I have searched open and closed issues for duplicatesTo pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.
Bug Description
Slapping --no-sandbox into the desktop file, and therefore disabling all sandboxing, is not a proper fix. Electron Version 5 improved security for electron-based applications. It doesn't help anyone when those features are disabled entirely.
Problem was introduced in this commit:
Problem could be resolved in a similar way to this commit:
element-hq/element-web@56674ea
I just hope I can bring this successfully to your attention, since I would consider it a serious problem when a software like Signal simply dismisses the security gains by proper Sandboxing.
Geblaat, nitrohorse, aselus-hub, ypossem, yb66 and 45 moremritzmann, luminoso, maymage and erebion
Metadata
Metadata
Assignees
Labels
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
kierun commentedon Feb 6, 2020
Running
1.30.1on Cent OS 7's latest kernel still requires--no-sandboxto run. I am not sure if this is relevant or not… ☺moppman commentedon Sep 17, 2020
Setting the SUID bit on chrome-sandbox via
chmod 4755 chrome-sandboxwas not working for me (Debian 10). I had to enable user namespaces sandboxing (see e.g. here for reference) viasysctl kernel.unprivileged_userns_clone=1.pasko commentedon May 4, 2021
On Debian 11 the
kernel.unprivileged_userns_cloneis set to 1 by default, it seems. I tested dropping--no-sandboxfrom command line arguments on Debian 11 (Bullseye) and signal-desktop started without an error.Setting the SUID bit on the helper is deprecated in Chromium, the aim is to replace it with the namespace sandbox (which is the default right now): explainer. All maintained kernel versions already support the namespace sandbox.
I think an ideal solution right now would be to have a helper that adds
--no-sandboxonly if/proc/sys/kernel/unprivileged_userns_clone(and its variants from other distros) reads as 0. Would this work?iabraham commentedon Sep 15, 2021
I just remove it from the .desktop file whenever I do an update and Signal seems to start just fine (Ubuntu 20.04.3 LTS).
stale commentedon Dec 15, 2021
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
pasko commentedon Dec 15, 2021
seems like a serious security/privacy issue, no?
stale commentedon Mar 15, 2022
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
SISheogorath commentedon Mar 15, 2022
Stalebot is great :)
iridos commentedon Oct 23, 2022
stale-bot is the only one interested on "working" on the ticket.
IIRC, aving kernel.unprivileged_userns_clone=1 has had multiple security problems / right escalations in the past.
signal-desktop only needs the capability at start-up, but temporarily enabling capabilities for that time span also needs root and that doesnt seem like a proper workaround either.
korg91 commentedon Jan 1, 2025
This is a security vulnerability and it has not been addressed yet. The Electron documentation explicitly recommends against this:
I found out about this by chance as I was looking at running processes and I noticed the
--no-sandboxflag. So not only is this the default behavior, but it is also not transparent to the user.I find it quite concerning that a security-oriented app like Signal goes against "highly recommended" security practices and seems to give little consideration to complaints for over 5 years. Messaging apps can and do be targeted as an attack vector to break into the OS -- see Pegasus. I'm not a sandbox expert, but I'd expect sandboxing to provide at least some degree of protection against that kind of threat.
The Signal app seems to work perfectly on Ubuntu without the
--no-sandboxflag. As a workaround, I just copied the .desktop file to the local folder and removed the flag:cp /usr/share/applications/signal-desktop.desktop ~/.local/share/applications/This automatically overrides the Signal entry in the app menu. But this is clearly not the right solution for the average user and also means that any future (potentially important) changes to the packaged-owned .desktop file are overridden too.
trevor-signal commentedon Jan 8, 2025
Hi @korg91, the next beta release of Signal Desktop (7.38) removes the
--no-sandboxCLI flag and also includes a recentelectron-builderupdate that supports Chromium's user namespaces sandbox. There is still more work to do, but we would appreciate your help testing the latest beta on Linux when it is released.WhyNotHugo commentedon Jan 8, 2025
Do these upstream updates also cancel the need for mounting
/tmp/withoutnoexec? As, in: #6897If user namespaces are used, then no need to write executable ont the host's
/tmp/.Geblaat commentedon Jan 16, 2025
Signal Desktop 7.38 is running fine here on Debian 12. Though I still see a process running with --no-zygote-sandbox. According from what I read this should not be used because it is necessary for the sandbox.
And another process is running with --service-sandbox-type=none. Ideally this should also not be used.