Repository navigation
test: require client evidence in network-denial checks - #762
Open
EliasCodeFI wants to merge 1 commit into
Open
EliasCodeFI wants to merge 1 commit into
EliasCodeFI wants to merge 1 commit into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The network-denial tests accepted a command that never started the intended client: a nonzero wrapper exit, a missing DNS tool, or the shell's fallback echo could satisfy the assertion. A broken sandbox startup could therefore look like successful network enforcement.
These tests now require client start and completion markers with a normal numeric exit status. Local HTTP and DNS fixtures first prove the same client can reach a target outside the sandbox, then verify the sandboxed attempt produces an expected denial result without reaching that target. The DNS fixture distinguishes a received DNS REFUSED reply from transport refusal or timeout. HTTPS cases test rejection before TLS reaches the local target; an unrelated TLS handshake failure is rejected.
Known-bad controls that discard the intended command or run it without sandboxing both fail the selected tests. Local runtime checks pass with
network.allowAllUnixSockets=trueexplicitly enabled; this does not validate the default seccomp helper. Typecheck, build, lint and formatting checks pass, and independent review accepted the source.Default-helper and platform validation passes at commit
1382b7cin fork PR #3: Tests, Release/package checks. Package publication is skipped.The initial macOS arm64 job failed in an unchanged Git-over-SSH delayed-refusal case with an early
no answer. A failed-job-only retry passed at the same commit. That failure is retained for separate diagnosis; this patch does not claim to fix it.