-
Notifications
You must be signed in to change notification settings - Fork 567
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
profiles: blacklist i3 IPC socket & dir except for i3 itself #6361
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks for the PR.
@@ -167,6 +167,10 @@ blacklist ${RUNUSER}/gnome-session-leader-fifo | |||
blacklist ${RUNUSER}/gnome-shell | |||
blacklist ${RUNUSER}/gsconnect | |||
|
|||
# i3 IPC socket (allows arbitrary shell script execution) | |||
blacklist ${RUNUSER}/i3/ipc-socket.* | |||
blacklist /tmp/i3-*/ipc-socket.* |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there anything else in the i3 directory?
XY: Would it make sense to blacklist the directory?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On my system, the only other files in there are an error log and another UNIX domain socket called log-stream-socket.*
. Seems neither very dangerous nor very useful, so it probably doesn't matter either way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Logs could contain sensitive information.
If there is thing important in it we should blacklist the directory IMHO.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FWIW, I agree. Targetting the directory is the better option here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fair enough, I changed it to block the entire directories.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Files that allow command execution are usually made read-only or blacklisted.
Unnecessary directories are usually blacklisted.
So why not both?
I think it would be helpful to have the actual socket paths documented and
having specific entries for them would be one way to do it.
I restored the socket paths, moved the directories to disable-programs.inc,
added the description to the commit message and force-pushed.
Thoughts?
b554df9
to
0af8540
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks for the changes.
This closes the escape route discussed in netblue30#6357. It's left open for i3's own profile, so that people who run i3 itself sandboxed still have the option to use IPC with it at all. Reference for file paths: https://i3wm.org/docs/userguide.html#_interprocess_communication
0af8540
to
87317dd
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Much like the i3 IPC socket (netblue30#6361), the sway IPC socket also allows arbitrary code execution via the `exec` subcommand. Access should only be permitted to sway itself by default.
Much like the i3 IPC socket (netblue30#6361), the sway IPC socket also allows arbitrary code execution via the `exec` subcommand. Access should only be permitted to sway itself by default. The location of the IPC socket is set in sway/ipc-server.c: https://github.com/swaywm/sway/blob/7e74a4914261cf32c45017521960adf7ff6dac8f/sway/ipc-server.c#L126
Much like the i3 IPC socket (#6361), the sway IPC socket also allows arbitrary code execution via the `exec` subcommand. Access should only be permitted to sway itself by default. The location of the IPC socket is set in sway/ipc-server.c: https://github.com/swaywm/sway/blob/7e74a4914261cf32c45017521960adf7ff6dac8f/sway/ipc-server.c#L126
This closes the escape route discussed in #6357.
It's left open for i3's own profile, so that people who run i3 itself sandboxed still have the option to use IPC with it at all.
Reference for file paths: https://i3wm.org/docs/userguide.html#_interprocess_communication