judge-server
judge-server copied to clipboard
Allowed syscalls audit
Allowed syscalls should be audited, and those that are not necessary in the majority of cases, or are potentially dangerous will be removed from chroot.py. Before get_security was implemented for executors, many very localized cases were added into chroot.py, and those were never cleaned up. The same auditing process will be done for FreeBSD syscalls as well.
Laziness is no excuse for lack of security. The fact that we have created a maintenance nightmare by not allowing common syscalls (#77) is no excuse for allowing all syscalls on sight. In that case, we might as well avoid maintenance nightmare, and replace them with actual nightmares of systems being pwned, by removing our security system.
For example, why is sys_readlink allowed for everything?
These submissions should likely have been allowed to pass:
https://dmoj.ca/submission/943440 https://dmoj.ca/submission/676246 https://dmoj.ca/submission/1000252 (should have been denied, this looks like a good testcase) https://dmoj.ca/submission/1052481 https://dmoj.ca/submission/1058794
https://dmoj.ca/submission/1058794 looks like it's executing random code. I don't see why we would make it pass.
This has been done for a long time.