mirror of
https://github.com/netblue30/firejail.git
synced 2026-05-15 14:16:14 -06:00
[GH-ISSUE #1855] transmission-gtk freezes on opening GTK dialogs (mprotect syscall gets blocked) #1255
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#1255
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 @ratm-github on GitHub (Apr 2, 2018).
Original GitHub issue: https://github.com/netblue30/firejail/issues/1855
I am not reopening #1736 as that explicitly mentions QT, whereas this issue is about transmission-gtk. However, the observed symptoms are the same.
The observed behavior is a freeze as soon as Transmission needs to open any new dialog (Open file - Open URL - ...). As in #1736, removing
memory-deny-write-executemakes everything work. I confirmed using strace that the binary is making a call that the seccomp filter duly blocks:I was quite puzzled by the need for RWX memory mappings as I couldn't find any reference to mmap/mprotect directly in the transmission source code. Therefore, I ran transmission-gtk under gdb to get the call trace when mprotect() is called with 0x7 (PROT_READ | PROT_WRITE | PROT_EXEC). It turns out that it is a result of calling
dlopeningtk_widget_show.Here's a snippet of the backtrace as seen by gdb. Full backtrace is attached:
Based on the above, I think the default profile for transmission-gtk should remove
memory-deny-write-executeas was done in #1736 for transmission-qt.For reference, here's my environment. I'll note that both myself and the original reporter of #1736 are on Arch, so it is possible that the
dlopen()codepath gets triggered only on Arch due to some packaging issue. I haven't had time to debug/reproduce this on another distro.@Vincent43 commented on GitHub (Apr 2, 2018):
Thanks for this detailed report. Fixed with
8cc0110502