dcg v0.12.3 — security release
Upgrade recommended for Windows users on v0.12.2 or earlier.
Security
-
Bare
cmd/pwshreading 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| bashside already
denied:echo del /s /q C:\x | cmd(andcmd.exe,cmd /q,type f | cmd);echo "Remove-Item -Recurse …" | pwsh(andpowershell,.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.