Release Notes
Changed (BREAKING)
facts::shell::Argv に公開フィールド subst_argv: Vec<Argv> を追加
(ADR 0008)。既存の Argv { … } 構造体リテラルは更新が必要。
PluginError に ReservedRuleId / DuplicateRuleId variant を追加。
PluginError は #[non_exhaustive] ではないため、この enum を網羅 match
している下流ライブラリ利用者は更新が必要。
Changed
- builtin rule の DSL 統合スライス 1 (ADR 0004):
core.network.remote-script-pipe
を src/rules/builtins.yaml (plugin DSL) から提供するように変更。reason /
remediation / rule id / hardDeny / severity は旧 Rust 実装と wire 互換。旧
実装 (rules::remote_pipe::RemoteScriptPipe) はパリティ oracle として残置。
Fixed
core.secrets.sensitive-read の書き込み本文スキャンを data-bearing shape
(PEM blob) のみに限定 (classify_content_into)。手順書等のドキュメントが
~/.aws/credentials や *.tfstate を含む ARN に言及しただけで Write が
hard-deny される false positive を解消。書き込み先 path・Bash・URL の
分類は従来どおり全 shape を対象とする。
Added
- STRIDE 脅威モデル (
docs/design/threat-model.md) と SECURITY.md の
No Telemetry / Threat Model 節。
- CI MSRV job を
cargo check から release build + test harness compile +
cargo doc に拡張 (公開 MSRV ピンが実ビルド可能であることを保証)。
- Process substitution (
<(…) / >(…)) 本体を Argv.subst_argv へ
re-parse (ADR 0003 C / issue #162)。bash <(curl …) と
bash -c "$(curl …)" を remote-script-pipe が Deny。subst 再帰は
fresh seen_from で echo <(curl) | bash の漏洩 FP を防ぐ。
- Command substitution (
$(…) / backticks) 本体の bounded re-parse。
echo $(cat .env) を sensitive-bash-read が Ask する (issue #161)。
Bash::commands() は subst_argv も flatten する。悲観モードは
budget 超過時の backstop として維持。
- 外部 plugin の rule id 検証:
core. prefix の予約 (ReservedRuleId) と
同一 plugin 内の id 重複 (DuplicateRuleId) を load 時に reject。
builtins.yaml のコンパイル失敗 (構造的に到達不能、テストで pin) 時は
deny-everything の fail-closed sentinel (core.engine.builtin-load-failed)
に縮退。
Security
- DSL 版 remote-script-pipe は fetch 側でも権限 wrapper の unwrap と
inner_argv 再帰を行うため、旧実装が見逃していた
sudo curl … | sh / bash -c 'curl …' | sh を新たに deny
(tests/bypass/corpus.jsonl に must_catch として追加)。
Install ptuf 0.6.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/watany-dev/ptuf/releases/download/v0.6.0/ptuf-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/watany-dev/ptuf/releases/download/v0.6.0/ptuf-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install watany-dev/tap/ptuf
Download ptuf 0.6.0