Hardening release
v0.1.1 makes configuration correctness a security boundary instead of silently falling back to the real command.
Fixed
- No-argument
hostandnslookupcalls now pass through instead of panicking. - Existing malformed configs fail closed with exit status 78.
TRUSTMEBRO_DISABLE=1remains an explicit passthrough escape hatch.- YAML unknown fields, invalid actions, malformed rewrites, unsafe shim names, duplicate names, invalid record types, and out-of-range exit codes are rejected.
shim_commandscan no longer escape the managed shim directory.- Default audit logs now use a 0700 state directory and 0600 file permissions.
- Compiled rewrite regexes are reused at runtime.
Verification
- Added subprocess tests for spoof, passthrough, rewrite, exit status, stderr, no-argument commands, malformed configs, unknown fields, disable mode, and installer traversal.
- Added Linux and macOS CI with formatting, vet, race tests, and release cross-compilation.
- Release assets were cross-compiled and verified against
SHA256SUMS.