Skip to content

0.6.0 - 2026-08-12

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Aug 05:35
e2524a4

Release Notes

Changed (BREAKING)

  • facts::shell::Argv に公開フィールド subst_argv: Vec<Argv> を追加
    (ADR 0008)。既存の Argv { … } 構造体リテラルは更新が必要。
  • PluginErrorReservedRuleId / 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_fromecho <(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

File Platform Checksum
ptuf-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ptuf-x86_64-apple-darwin.tar.gz Intel macOS checksum
ptuf-x86_64-pc-windows-msvc.zip x64 Windows checksum
ptuf-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ptuf-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ptuf-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ptuf-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum