On Tue, Jul 16, 2024 at 12:12:49PM -0400, James Bottomley wrote: > On Tue, 2024-07-16 at 17:57 +0200, Roberto Sassu wrote: > > But the Clip OS 4 patch does not cover the redirection case: > > > > # ./bash < /root/test.sh > > Hello World > > > > Do you have a more recent patch for that? Bash was only partially restricted for CLIP OS because it was used for administrative tasks (interactive shell). Python was also restricted for user commands though: https://github.com/clipos-archive/clipos4_portage-overlay/blob/master/dev-lang/python/files/python-2.7.9-clip-mayexec.patch Steve and Christian could help with a better Python implementation. > > How far down the rabbit hole do you want to go? You can't forbid a > shell from executing commands from stdin because logging in then won't > work. It may be possible to allow from a tty backed file and not from > a file backed one, but you still have the problem of the attacker > manually typing in the script. Yes, that's why we'll have the (optional) SECBIT_EXEC_DENY_INTERACTIVE: https://lore.kernel.org/all/20240710.eiKohpa4Phai@xxxxxxxxxxx/ > > The saving grace for this for shells is that they pretty much do > nothing on their own (unlike python) so you can still measure all the > executables they call out to, which provides reasonable safety. Exactly. Python is a much more interesting target for attacker because it opens the door for arbitrary syscalls (see the cover letter). If we want to have a more advanced access control (e.g. allow Bash but not Python), we should extend existing LSMs to manage the appropriate securebits according to programs/subjects.