mirror of
https://github.com/netblue30/firejail.git
synced 2026-05-15 14:16:14 -06:00
[GH-ISSUE #3] seccomp always blocks syscall=45 (recvfrom) #3
Labels
No labels
LTS merge
LTS merge
bug
bug
converted-to-discussion
doc-todo
documentation
duplicate
enhancement
file-transfer
firecfg
firejail-in-firejail
firetools
graphics
help wanted
information_old
installation
invalid
modif
moved
needinfo
networking
notabug
notourbug
old-version
overlayfs
packaging
profile-request
pull-request
question
question_old
removal
runtime-permissions
sandbox-ipc
security
stale
wiki
wiki
wontfix
wordpress
workaround
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/firejail#3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @boltronics on GitHub (Aug 9, 2015).
Original GitHub issue: https://github.com/netblue30/firejail/issues/3
I tried running Steam in firejail using the seccomp option in the profile, which resulted in
Steam failing to launch and syslog reporting syscall=45 (recvfrom) has been blocked. Strange, since that wasn't mentioned in the man page as being blacklisted.
Then I tried replacing
seccompwith the optionseccomp.drop mount,umount2,ptrace,kexec_load,open_by_handle_at,init_module,finit_module,delete_module,iopl,ioperm,swapon,swapoff,mknode,syslog,process_vm_readv,process_vm_writev,sysfs,_sysctl,adjtimex,clock_adjtime,lookup_dcookie,perf_event_open,fanotify_init,kcmpwhere all syscalls are taken from the list in the firejail(1) man page (under --seccomp section) as being the default blacklist, but I still get the same error.
I even went so far as to comment out every other line in my profile for Steam (including "include" lines) and I still run into the same issue.
Wine is also affected by this (even just running
wine --versionwill result in the same failure).@netblue30 commented on GitHub (Aug 10, 2015):
I better fix this asap, thanks!
@netblue30 commented on GitHub (Aug 15, 2015):
wine is a 32bit executable - at least on my Debian system. The seccomp filter is architecture specific, set at compile time - 64bit for most users. It turns out syscall numbers don't match in 32bit and 64bit architectures. For example, syscall 311 is a harmless sys_set_robust_list on 32bit and a troublesome process_vm_writev on 64bit (disabled by the default filter on 64bit architectures).
"firejail --seccomp wine --version" fails the architecture validation at the start of default filter, printing a false recvfrom syscall. If I remove the architecture validation at the start of the filter, I immediately get syscall 311 failing. This will never work without heavy duty lifting in Linux kernel.
The workaround is not to use seccomp in this case. Instead, try --caps.drop=all. I'll close the bug for now.
@boltronics commented on GitHub (Aug 15, 2015):
No worries. Thanks for looking into it.