Skip to content

Fix /dev/null approval scope - #1852

Merged
Aaronontheweb merged 3 commits into
devfrom
fix/dev-null-approval-scope
Aug 10, 2026
Merged

Fix /dev/null approval scope#1852
Aaronontheweb merged 3 commits into
devfrom
fix/dev-null-approval-scope

Conversation

@Aaronontheweb

Copy link
Copy Markdown
Collaborator

Summary

  • Do not turn the resolved POSIX /dev/null redirect target into a reusable /dev approval scope.
  • Run the existing host symlink check before the null-device exception.
  • Keep all other device paths, external redirects, dynamic redirects, and PowerShell paths strict.
  • Add direct matcher regressions and an end-to-end approval matrix case.

User impact

Safe commands such as ls -la 2>/dev/null can use the trusted working-directory policy instead of prompting for /dev access. Commands such as tmux or systemctl can still prompt when their verbs require approval, but the prompt uses the invocation working directory instead of claiming that the command runs in /dev.

This is a Netclaw policy correction. It does not require a new ShellSyntaxTree package.

Security boundaries

  • /dev/null.backup still creates a /dev scope.
  • A second redirect such as >/etc/output.txt still creates an /etc scope.
  • Dynamic targets remain fail closed.
  • Host symlink checks run before the exception.
  • Native PowerShell does not use the POSIX exception.

Verification

  • Release solution build: 0 warnings, 0 errors.
  • Full solution tests: 6,797 passed, 15 environment-specific skips, 0 failed.
  • Bash approval matrix: 193 cases passed before the expanded full run.
  • Slopwatch: 0 issues.
  • File headers: verified.
  • Formatting and git diff --check: passed.
  • Adversarial security review: no remaining blocking findings after the symlink-order correction.

@Aaronontheweb
Aaronontheweb enabled auto-merge (squash) August 10, 2026 17:23
@Aaronontheweb Aaronontheweb added bug Something isn't working UX/DX UI / UX / DX friction issue or user-facing annoyances. shell Issues related to the shell tool, since it has the largest security perimeter. labels Aug 10, 2026
@Aaronontheweb
Aaronontheweb merged commit 5f2f1c3 into dev Aug 10, 2026
21 checks passed
@Aaronontheweb
Aaronontheweb deleted the fix/dev-null-approval-scope branch August 10, 2026 18:07
Aaronontheweb added a commit that referenced this pull request Aug 10, 2026
…ke) (#1858)

Flapping_connection_grows_retry_backoff failed on Windows CI with
Akka.Actor.AskTimeoutException: the 3s Ask inside AwaitAssertAsync had
no headroom because AwaitAssertAsync defaults to a 3s budget
(single-expect-default), not the fixture's default-timeout of 5s. On a
loaded runner one slow Ask consumed the whole budget and the retry
could not fit.

Give the snapshot-Ask assertion loops an explicit 15s budget so the
loop dominates the per-attempt Ask (>=4 full retries) while keeping
the end-state assertions unchanged.
@Aaronontheweb Aaronontheweb mentioned this pull request Aug 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working shell Issues related to the shell tool, since it has the largest security perimeter. UX/DX UI / UX / DX friction issue or user-facing annoyances.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant