Tsumugi の脆弱性報告と保証境界についてまとめる。報告の前に、まず下記「保証境界」を確認してほしい。
Tsumugi は教育・実験用途の alpha 版である。言語仕様・組み込みAPI・CLI の後方互換性は保証していない。脆弱性対応もベストエフォートで行う(個人プロジェクトのため、対応時期を約束するものではない)。
Tsumugi 単体は security boundary ではない。
Tsumugi のサンドボックス、パス検査、ステップ予算、capability モデルは defense-in-depth(多層防御の一層)であり、非信頼コードを隔離する security sandbox ではない。敵対的なスクリプトを安全に実行するには、別プロセス・非 root・最小 mount・cgroup 等の OS レベルの隔離と組み合わせる必要がある。
何を保証し、何を保証しないか、責任分界はどこにあるかは、脅威モデルを正本とする。
- 脅威モデル — 保証する性質 / 保証しない性質 / host・Tsumugi・OS の責任分界
- Tsumugi Manifesto — 設計原則と非目標
次に該当するものは、脆弱性ではなく既知の設計上の非目標である。報告の前に脅威モデルの「8. 保証しない性質」を確認してほしい。
- 非信頼スクリプトを Tsumugi 単体で完全隔離できないこと
- OS レベルの OOM / スタックオーバーフロー /
panic=abortからの同一プロセス回復 - スクリプトへ正当に渡した secret を、そのスクリプトが意図的に出力すること
- 未実装フェーズ(Phase 2 以降)の capability / 実行予算 / 監査に関する挙動。実装状態はロードマップを参照
alpha 版のため、セキュリティ修正は原則として最新の main に対してのみ行う。
| バージョン | サポート |
|---|---|
最新の main |
✅ |
| それ以前 | ❌ |
脆弱性は公開 Issue に書かないでほしい。 修正前に詳細が公開されることを避けるため、GitHub の Private Vulnerability Reporting を使う。
- リポジトリの Security タブを開く
- Report a vulnerability を押す
- 影響範囲・再現手順・想定される深刻度を記載する
報告には可能な範囲で次を含めてもらえると対応が早い。
- 影響を受ける実行系(tree-walk / VM
--vm/ 埋め込み API のいずれか) - 再現用の最小スクリプト(
.tsg)または手順 - 期待される挙動と実際の挙動
- 該当する脅威モデルの TM-ID があれば、その番号
- 報告を受け取ったら、Private Vulnerability Reporting のスレッド上で確認・やり取りを行う
- 有効な脆弱性と判断した場合、修正と、必要に応じて GitHub Security Advisory の公開を行う
- 対応時期は保証しない(ベストエフォート)