Skip to content

v2.0.9

Choose a tag to compare

@github-actions github-actions released this 21 Aug 06:56
· 3 commits to main since this release

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 -S split string, such as env -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 -S handling: 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 the strict and paranoid safety levels an env -S command is now refused as an unverifiable execution source.
  • Changed GNU parallel --env handling: 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-config rule to follow the resolved destructive-command rule state, so turning off destructive-command protection now suppresses it too.

Fixed

  • Fixed xargs replacement input not being treated as dynamic for the merge, rebase, reflog, rm, stash, and worktree Git subcommands.
  • Fixed worktree-mode Git environment tracking: an assignment that only prefixes a command no longer persists into later segments, a NAME=value token after the command word is no longer treated as an environment override, a prefixed unset is now tracked, and command -v/-V is 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 -S split string; the split words are now scanned against the protected paths.
  • Fixed destructive text in a GNU parallel environment value being allowed when the coarse parallel rules or destructive-command protection were turned off; such values now stay blocked in every configuration.