Narrow confined path authority at runtime handoff

This commit is contained in:
ms2k 2026-07-16 14:08:39 +09:00
commit cf914bdf51

View file

@ -229,11 +229,14 @@ Path resolution produces a `ConfinedPathPlan`, not an ambient absolute path.
Each plan retains a validated ancestor directory descriptor and a normalized
relative suffix, records the ancestor's device, inode, and mount identity, and
keeps canonical raw pathname bytes only as a diagnostic label or digest input.
Every consumer uses descriptor-relative opens with beneath, no-magic-link,
no-symlink, and no-mount-crossing resolution and revalidates the expected type.
The consumer refuses a replaced ancestor, mount transition, symlink, special
file, type mismatch, or any source that cannot be revalidated; it does not
recover by opening the canonical label as an absolute pathname.
Lazaret-owned filesystem access and mutation use descriptor-relative opens with
beneath, no-magic-link, no-symlink, and no-mount-crossing resolution and
revalidate the expected identity and type. A trusted external component whose
interface requires a pathname may receive the canonical label only after
Lazaret reopens it through the plan and revalidates it at the handoff boundary.
A failed revalidation refuses the operation; it does not fall back to opening
the label as authority. Replacement by a trusted host process after a successful
handoff is ordinary host concurrency rather than Agent Sandbox authority.
Lazaret creates a missing Storage, Runtime, profile, or Domain root one path
component at a time beneath its retained existing ancestor. Every created
@ -250,8 +253,10 @@ final for that load and never authorizes a partially resolved root.
The profile directory is the `profiles/<profile-name>` child of the Storage
Root. Persistent and runtime Domain roots use the lowercase hexadecimal Domain
ID beneath separate `domains` children of the Storage and Runtime Roots. Those
fixed layouts are constructed only from validated root handles; a path string
or matching digest alone is not authority over a root.
fixed layouts are created and mutated only through validated root handles.
Canonical labels may identify them at a trusted external pathname handoff only
after the exact root has been revalidated through its retained plan; a path
string or matching digest alone is not Lazaret filesystem authority over a root.
Configuration confinement compares canonical component ancestry and retained
filesystem identities after every source has been opened. The configuration