mirror of
https://github.com/netblue30/firejail.git
synced 2026-05-15 14:16:14 -06:00
[GH-ISSUE #2875] Pidgin: fcitx input method switching only works with private-bin #1795
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#1795
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 @ShadowsFriend on GitHub (Jul 29, 2019).
Original GitHub issue: https://github.com/netblue30/firejail/issues/2875
I have encountered a pretty strange issue. With the default pidgin.profile, I cannot switch my input method in Pidgin using the fcitx input method framework. If I add
private-bin pidginandshell none(withoutshell nonePidgin does not start withexecvp: No such file or directorywhenprivate-bin pidginis used), however, everything works as expected. This surprised me quite a bit, as I was expectingprivate-binto only restrict the access more and thus potentially break things and not fix them. As I lack the understanding to judge if this is the result of some unknown and potentially security impairing side-effects ofprivate-bin, I decided to open an issue.I am using firejail 0.9.60 on Gentoo.
Edit: Output of
firejail --version:@rusty-snake commented on GitHub (Aug 24, 2019):
It looks like nobody really has an idea and write something. I'm not using fcitx so I can't realy help, but two questions.
--noprofile? (firejail --noprofile --private-bin=bash,pidgin,... pidgin)There shouldn't be any.
A miserable program could have something like this. consider this: program abc has a second binary abc-auth which check if the current user/process is allowed to use a feature in abc. But abc is programed
like systemd🙊 ugly , if the auth binary isn't reachable it grands full permissions.@ShadowsFriend commented on GitHub (Aug 25, 2019):
I have only experienced this issue with Pidgin. Obviously, the input method itself does not work with profiles that include "nodbus" unless "ignore nodbus" is added. This is totally expected and unrelated to the issue with Pidgin, though.
To answer the second question: input method switching works when I start Pidgin with
firejail --noprofile pidginbutWarning: an existing sandbox was detected. /usr/bin/pidgin will run without any additional sandboxing featuresis printed to the console, which probably means the result of it working in this case is worthless. It also works withfirejail --noprofile --shell=none --private-bin=pidgin pidginand no warning is printed in that case. Withfirejail --noprofile --private-bin=pidgin,zsh pidginit does also work (I use zsh). And now it gets funny: withfirejail --noprofile --private-bin=pidgin,bash,zsh pidginit does not work.In summary, as soon as there is access to bash from inside the sandbox (either by starting Pidgin without private-bin or by explicitly including bash in private-bin) the input method switching stops working.
@rusty-snake commented on GitHub (Aug 25, 2019):
😄 😆 😳 😜 😬 😕 😰 😂 😱 😫 😵 🙈 🙉 ❓ ⚠️ ⁉️ ‼️ 🙃 🦄
???!
@smitsohu commented on GitHub (Aug 25, 2019):
Possibly they implemented a fallback path if no bash can be found... maybe some binaries are missing to get it working with bash present. If you want to dig deeper, one place to start could be observing the output of
sudo firemonwhile switching the input method.But anyway, having no shell available inside the sandbox is good. Usually it means an attacker has to bring his own shell, it is one more hoop he has to jump through in order to be successful.
@rusty-snake commented on GitHub (Oct 13, 2019):
I'm closing here due to inactivity, please fell free to reopen if you still have this issue.