github Dicklesworthstone/destructive_command_guard v0.12.3

2 hours ago

dcg v0.12.3 — security release

Upgrade recommended for Windows users on v0.12.2 or earlier.

Security

  • Bare cmd/pwsh reading piped or redirected stdin as commands is now
    guarded on the cmd/PowerShell dialects (bd-1o5h).
    A shell consuming piped
    source runs its program from stdin, but the executing-sink pipeline analysis
    was bash-AST/POSIX-only, so these ran their payload unguarded while
    cmd /c "…", powershell -, and the whole POSIX | bash side already
    denied:

    • echo del /s /q C:\x | cmd (and cmd.exe, cmd /q, type f | cmd);
    • echo "Remove-Item -Recurse …" | pwsh (and powershell, .exe, -);
    • cmd < payload.bat / pwsh < script.ps1 (redirected stdin → fails closed).

    A native cmd/PowerShell pipeline collector now reuses the existing
    consumer-mode analysis: a statically-known producer piped into a bare
    stdin-reading shell is evaluated as that shell's source, and a
    <-redirected file into such a shell fails closed. Only a bare stdin-reading
    shell consumer triggers a check, so ordinary pipelines (| findstr,
    | Where-Object, | Out-File, | clip, cmd /c …, pwsh -File …) are
    untouched. Found in the v0.12.2 adversarial sweep; verified by a 26-case
    behavior spec, a wide false-positive sweep, and a sibling-evasion sweep.

This completes the executing-sink hardening across the POSIX, cmd, and
PowerShell dialects begun in v0.12.1.

Verification

Every archive has .sha256, .minisig (key ID 69B3955C8D2E62A8),
.sigstore.json (local-release cosign key, DER SHA256
0e6947743daf39d6413cb25f6c96601427e38885f3a756e9f98f37d66e6df7a4) and SLSA
.intoto.jsonl provenance sidecars. install.sh --require-minisign /
install.ps1 -RequireMinisign -Verify enforce them.

Don't miss a new destructive_command_guard release

NewReleases is sending notifications on new releases.