Context
The compiler is spawned directly via subprocess.run in the same OS user context as the server process. There is no chroot, seccomp filter, Linux namespace, or bubblewrap sandbox.
If an attacker bypasses flag filtering (HIGH-1 / MED-2), they get arbitrary code execution as the server user.
Location: rgcc/server/compiler/runner.py, lines 115–116
Proposed fix
Wrap compiler invocation with bwrap (bubblewrap) or run each job inside a fresh Docker container with --network=none --read-only and a volume-mounted work directory.
Context
The compiler is spawned directly via
subprocess.runin the same OS user context as the server process. There is nochroot,seccompfilter, Linux namespace, orbubblewrapsandbox.If an attacker bypasses flag filtering (HIGH-1 / MED-2), they get arbitrary code execution as the server user.
Location:
rgcc/server/compiler/runner.py, lines 115–116Proposed fix
Wrap compiler invocation with
bwrap(bubblewrap) or run each job inside a fresh Docker container with--network=none --read-onlyand a volume-mounted work directory.