diff --git a/docs/recorded-crashes.md b/docs/recorded-crashes.md index 117b592b5f..7af17e7bbe 100644 --- a/docs/recorded-crashes.md +++ b/docs/recorded-crashes.md @@ -109,14 +109,16 @@ owned live sentinel. An observed Node thread group must launch the exact ownersh `ps` inventory before it can read that live process's `stat` or `status` for native identity/UID facts. Only traced `CLONE_THREAD` members share this allowance; exec-replaced threads, ordinary children, debugger and decoder processes cannot -use it. A second recording uses a valid +use it. The purpose of stat/status reads within the same Node thread group +cannot be distinguished by strace. A second recording uses a valid historical PID above the host's assignable PID range and rejects resolved lookups, including Node `stat`/`status` reads, to detect historical-PID-driven access separately from live inventory. Descriptor paths come from strace's `-yy` decoding; exact PID-directory opens and relative accesses through those handles are rejected. Failed FD-relative pathname attempts are checked across syscall variants. -Legacy relative pathname calls without dirfd/cwd evidence remain unverified; -the verification report declares this gap rather than establishing their absence. +Legacy relative pathname calls without dirfd/cwd evidence and symlink aliases +remain unverified; the verification report declares these gaps rather than +establishing their absence. One syscall/selector contract supplies trace selection, target interpretation and the report's explicit coverage catalog. Unlisted PID-directed syscalls remain unverified. The catalog includes PID-directed resource diff --git a/scripts/verify/recorded-crash/trace-policy.mjs b/scripts/verify/recorded-crash/trace-policy.mjs index 07fb5ee24a..faf4c71f28 100644 --- a/scripts/verify/recorded-crash/trace-policy.mjs +++ b/scripts/verify/recorded-crash/trace-policy.mjs @@ -47,6 +47,8 @@ export const historicalPidTraceContract = Object.freeze({ pid_syscalls: Object.freeze([...pidTargetKinds.keys()]), unverified: Object.freeze([ "legacy-cwd-relative-paths", + "symlink-path-aliases", + "same-node-thread-stat-status-purpose", "other-pid-directed-syscalls", ]), });