netblue30 / firejail

Linux namespaces and seccomp-bpf sandbox
https://firejail.wordpress.com
GNU General Public License v2.0
5.71k stars 559 forks source link

idea: UI freeze due to chromium + seccomp #6497

Open felixwiemuth opened 1 day ago

felixwiemuth commented 1 day ago

Description

The profile for IntelliJ Idea includes seccomp, but this (at least recently) seems to cause problems with opening new projects (and potentially also running programs from the IDE).

This happened for IntelliJ Idea Ultimate 2024.2.3 (after updating to this version, could not run run configurations anymore (which worked just before) until disabling seccomp). A crash when opening projects (which one hadn't opened before) happened for this and versions 2024.2.1 and 2024.2.2. What is printed on the console as the last thing around the time when the program gets stuck and then closes is:

FATAL:zygote_host_impl_linux.cc(216)] Check failed: . : No such file or directory (2)

It seems that zygote is related to Chromium: https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux/zygote.md I noticed that after disabling seccomp, the Readme of the project is displayed after loading it - a guess would be that this is displayed via Chromium, which causes the crash when it wants to fork the process or so.

The profile used is based on the profile coming with firejail, but whitelisted, and with a few other restrictions removed.

Steps to Reproduce

  1. Run IntelliJ Idea with the idea.sh firejail profile: firejail --profile=... intellij-idea-ultimate-edition
  2. Open a new project (e.g. gradle project) that hadn't been opened before with IntelliJ Idea (it might be required that the project has a README.md if the issue is related to this)
  3. Wait while the project is imported/scanned etc.
  4. See the UI getting stuck after half a minute or so, see error FATAL:zygote_host_impl_linux.cc(216)] Check failed: . : No such file or directory (2) on the console

Expected behavior

The IDE does not crash

Actual behavior

The IDE crashes

Behavior without a profile

The IDE does not crash (when just removing seccomp from the profile)

Environment

Checklist

rusty-snake commented 1 day ago

So which syscall is blocked?

https://github.com/netblue30/firejail/blob/0e7296bef3388ea475ded293b5bd3a9967c98cc3/etc/templates/syscalls.txt#L89-L112

If it is related to chromium, try seccomp !chroot assuming user namespaces are enabled.