aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2025-04-08sandbox/seccomp: rename flag type and constantsOphestra
The names are ambiguous. Rename them to make more sense. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-04-07fortify: print synthesised id in psOphestra
This is not the full synthesised id so it does not get too long. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-04-07fortify: check fst id string lengthOphestra
This should never be a problem, however in case it happens printing a warning message is better than relying on the runtime to panic. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-04-07app: install seccomp filter to shimOphestra
This does not necessarily reduce attack surface but does not affect functionality or introduce any side effects, so is nice to have. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-04-07sandbox/seccomp: unexport println wrapperOphestra
This is an implementation detail that was exported for the bwrap argument builder. The removal of that package allows it to be unexported. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-04-07app: improve shim process managementOphestra
This ensures a signal gets delivered to the process instead of relying on parent death behaviour. SIGCONT was chosen as it is the only signal an unprivileged process is allowed to send to processes with different credentials. A custom signal handler is installed because the Go runtime does not expose signal information other than which signal was received, and shim must check pid to ensure reasonable behaviour. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-04-01release: 0.3.3Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-04-01sandbox: document less obvious parts of setupOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-04-01app: wayland socket in process shareOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-04-01app: share path setup on demandOphestra
This removes the unnecessary creation and destruction of share paths when none of the enablements making use of them are set. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-31fst: optional configured shell pathOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-31fortify: update show outputOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-31fortify: clean ps outputOphestra
This format never changed ever since it was added. It used to show everything there is in a process state but that is no longer true for a long time. This change cleans it up in favour of `fortify show` displaying extra information. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-30nix: update flake lockOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-30release: 0.3.2Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-30sandbox/seccomp: update doc commentOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-30fst: set multiarch bitOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-30test: separate app and sandboxOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-30test: move test program to sandbox directoryOphestra
This prepares for the separation of app and sandbox tests. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-30test/sandbox: treat ESRCH as temporary failureOphestra
This is an ugly fix that makes various assumptions guaranteed to hold true in the testing vm. The test package is filtered by the build system so some ugliness is tolerable here. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-30test/sandbox: separate check filterOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-29test: build test program in nixos configOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-29nix: check share/applications in share packageOphestra
This allows share directories without share/applications/ to build correctly. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-28test/sandbox: check seccomp outcomeOphestra
This is as ugly as it is because it has to have CAP_SYS_ADMIN and not be in seccomp mode. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-28sandbox/seccomp: add fortify default sampleOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-28test/sandbox/ptrace: generic filter block typeOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-28test/sandbox/ptrace: dump seccomp bpf programOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-28test/sandbox: expose test toolOphestra
Some test elements implemented in the test tool might need to run outside the sandbox. This change allows that to happen. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27test/sandbox: separate test tool sourceOphestra
This improves readability and allows gofmt to format the file. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27sys: update doc commentOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27state/multi: fix backend cache population raceOphestra
This race is never able to happen since no caller concurrently requests the same aid yet. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27sandbox: support privileged containerOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27app/seal: check for '=' in envvOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27helper/args: copy args on wt creationOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27helper/stub: output to stdoutOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27test/sandbox: check environmentOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27test/sandbox: invoke check program directlyOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27app: pass through $SHELLOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27nix: pass through exec argumentsOphestra
This is useful for when a wrapper script is unnecessary. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26release: 0.3.1Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26sandbox/init: clear inheritable setOphestra
Inheritable should not be able to affect anything regardless of its value, due to no_new_privs. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26sandbox: wrap capset syscallOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26sandbox/init: drop capabilitiesOphestra
During development the syscall filter caused me to make an incorrect assumption about SysProcAttr. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26sandbox: cache kernel.cap_last_cap valueOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26app: create XDG_RUNTIME_DIR with perm 0700Ophestra
Many programs complain about this. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26release: 0.3.0Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26nix: create current-system symlinkOphestra
This is copied at runtime because it appears to be impossible to obtain this path in nix. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26test: raise long timeout to 15 secondsOphestra
The race detector really slows down container tooling. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26sandbox: copy symlink with magic prefixOphestra
This does not dereference the symlink, but only reads one level of it. This is useful for symlink targets that are not yet known at the time the configuration is emitted. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-25nix: create opengl-driver symlinkOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>