This release closes an env -S bypass in the policy-file and Git-metadata guards and stops commands full of path-like tokens from being denied as an internal failure. env -S and GNU parallel --env are no longer emulated, so a few commands that previously passed analysis are now refused.
Highlights
- Blocked policy-file and Git-metadata mutations hidden inside an
env -Ssplit string, such asenv -S 'rm <policy-path>' true(#82). - Fixed commands containing many path-like tokens being denied as an unexpected CC Safety Net failure; policy-path checks now do far less filesystem work (#82).
Changed
- Changed
env -Shandling: the split string is no longer expanded. Its value is scanned for destructive text, and an inert value is spliced ahead of the remaining operands and analyzed as the real command line. Under thestrictandparanoidsafety levels anenv -Scommand is now refused as an unverifiable execution source. - Changed GNU
parallel --envhandling: because the selected values are supplied at run time, the command is now refused as unverifiable construction instead of being emulated. - Improved analysis-limit denials: they now say the command exceeds safe analysis limits and suggest simplifying or splitting it, instead of reporting an internal CC Safety Net fault.
- Changed audit logging so fail-closed failure entries keep the whole command instead of a truncated one.
- Changed the
git.alias-configrule to follow the resolved destructive-command rule state, so turning off destructive-command protection now suppresses it too.
Fixed
- Fixed
xargsreplacement input not being treated as dynamic for themerge,rebase,reflog,rm,stash, andworktreeGit subcommands. - Fixed worktree-mode Git environment tracking: an assignment that only prefixes a command no longer persists into later segments, a
NAME=valuetoken after the command word is no longer treated as an environment override, a prefixedunsetis now tracked, andcommand -v/-Vis treated as a query rather than an invocation. - Fixed the policy GUI showing default settings for a partially invalid policy file while the engine enforced the salvaged values; it now shows the policy that is in force.
- Fixed the policy GUI refresh buttons staying disabled and spinning when a reload failed.
Security
- Fixed policy-file and Git-metadata protection missing mutations hidden in an
env -Ssplit string; the split words are now scanned against the protected paths. - Fixed destructive text in a GNU
parallelenvironment value being allowed when the coarseparallelrules or destructive-command protection were turned off; such values now stay blocked in every configuration.