Skip to content

Close Bash command-resolution mutation boundary - #123

Merged
Aaronontheweb merged 1 commit into
devfrom
feature/v03-bash-command-resolution-boundary
Aug 9, 2026
Merged

Close Bash command-resolution mutation boundary#123
Aaronontheweb merged 1 commit into
devfrom
feature/v03-bash-command-resolution-boundary

Conversation

@Aaronontheweb

Copy link
Copy Markdown
Owner

Summary

  • fail closed globally on Bash exec and mutating or ambiguous command-resolution builtins
  • retain only exact static query grammar for hash, alias, shopt, and enable
  • reject unmodeled time, negation, coprocess, and brace-group execution syntax before nested mutations can be flattened
  • add native Bash oracles, executable corpus cases, OpenSpec/SPEC updates, implementation-plan tracking, and consumer guidance

Security boundary

This prevents a later authored command from being published with a false executable identity after hash, alias, shell-option, or builtin-resolution state changes. Exact command and builtin wrappers cannot bypass the boundary. Unknown, dynamic, or invalid grammar fails closed.

Validation

  • dotnet build -c Release --no-restore — 0 warnings, 0 errors
  • dotnet test -c Release --no-build — 2,543 passed
  • focused public API / PII / corpus gate — 744 passed
  • dotnet pack -c Release --no-build -o ./bin/nuget — passed
  • slopwatch analyze --no-baseline --fail-on warning — 0 findings
  • pwsh ./scripts/Add-FileHeaders.ps1 -Verify — passed
  • openspec validate v0-3-structured-shell-analysis --strict — passed
  • git diff --check — passed

Adversarial review

Independent adversarial review: PASS, no blocking findings. The reviewer exercised direct, quoted, escaped, and concatenated target spellings; recursive dispatch wrappers; reordered, clustered, dynamic, and invalid options; separators, pipelines, substitutions, subshells, static bash -c; and reserved execution forms. Opaque noncanonical shell wrappers remain incomplete and non-reusable by contract.

@Aaronontheweb
Aaronontheweb enabled auto-merge (squash) August 9, 2026 01:13
@Aaronontheweb
Aaronontheweb merged commit 04ec836 into dev Aug 9, 2026
2 checks passed
@Aaronontheweb
Aaronontheweb deleted the feature/v03-bash-command-resolution-boundary branch August 9, 2026 01:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant