Repository navigation
Host baseline probe privacy follow-up: login-bearing version suffixes, home traversal per line, path-only normalization, distinct subtest ids - #748
Conversation
… refused, home traversal refused, distinct subtest ids This addresses the three P2 residuals that the configuration owner accepted at #710's merge, and fixes the two leak paths as asked. - **Claude version strip.** It no longer erases prerelease or build suffixes, so the login checks see them. `2.1.289-alice (Claude Code)`, `2.1.289+build.alice (Claude Code)` and `2.1.289+claude (Claude Code)` with the matching login now fail closed. The committed banners and a benign-suffix control still pass. - **Home traversal.** Absolute values with a `..` component are refused. Values are normalized lexically with posixpath.normpath, without resolving symlinks, before the complete-home membership check. So `/home/alice/../bob/bin/env` no longer passes as a child of home. Traversal fixtures cover output, stderr, commands and keys. - **Subtest ids.** The sibling-home subtests use per-case ids: 18 distinct. Each fix has a regression that failed against main ec0b8fd and passes now. Built by GPT-6.1 Sol through the packaged SDK worker (round baseline-privacy-r5, on the #710 builder thread); committed by the coordinator. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…fore the final hot-file commit Co-Authored-By: Claude Opus 5.5 <[email protected]>
… (hot-file protocol: every hot-file edit in the last commit) Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ne-ending traversal, exact guide claim, subtest-id regression This fixes the three P2s from the Claude Opus cross-family read of r5: - normpath runs only on single-line, whitespace-free absolute values. Other values keep their remainder verbatim after the home prefix is replaced, as base did, so error lines and combined output are no longer rewritten. 12 controls cover output, stderr, commands and keys. - The '..' refusal checks the slash-delimited components on each line. Newline and carriage-return traversal fixtures cover four locations, and each exits 3 with empty output. - The guide, code comment and decision record now say that whole-document home detection is guaranteed for homes under /home/, and they document the limit for embedded references to homes elsewhere. This is documentation only; the gate is not extended (the user's no-over-engineering rule). - A committed regression asserts that the sibling-home subtest ids are unique. It fails when the old shared label is restored. Each new control failed against 26d6bdd (where applicable) and passes now. tests.test_host_baseline_probe: 28 OK. The six historical artifacts and four receipts are byte-identical. validate.py and evidence_manifest --check exit 0. Built by GPT-6.1 Sol through the packaged SDK worker (round baseline-privacy-r6, on the #710 builder thread); committed by the coordinator. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…fore the final hot-file commit Co-Authored-By: Claude Opus 5.5 <[email protected]>
… (hot-file protocol: every hot-file edit in the last commit) Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
Claude session native-agent-stack-5f: landing at head Observed main Required checks at this head: 7 pass . Unresolved review threads: 0. macOS (advisory). The user decided on 2026-10-05 that macOS checks are advisory. Ruleset 23739774 requires exactly validate, token-report, secret-scan, dependency-review, osv-scanner, verdict-review-gate and sota-sources. The macOS full suite has carried one failure from main since #732 (4fd7106):
|
|
Claude session native-agent-stack-5f: post-merge observation. Landed as |
Scope
2.1.289-<login> (Claude Code)is refused...component are refused, checked per line. Values are normalized lexically withposixpath.normpathonly when single-line and whitespace-free. Every other value keeps its remainder verbatim after the home prefix is replaced.ec0b8fd82. The four source files are unchanged on main since then; manifests/evidence.json is refreshed at landing (hot-file protocol).lane:foundation.SOTA sources
posixpath.normpath: lexical normalization that resolves no symlinks.str.splitlinesandstr.isspace: the Unicode line-boundary set is a subset of whitespace, verified across all code points.docs/decisions/2026-10-04-host-baseline-recorder.md, and its accepted residuals.Evidence-class table
python3 -m unittest tests.test_host_baseline_probe: 28 OK (builder-reported). Each new control failed against the prior head.Local commands run
Review
Built by GPT-6.1 Sol through the packaged SDK worker (rounds baseline-privacy-r5 and r6, on the #710 builder thread) and committed by the coordinator (Claude session 5f).
Checklist
🤖 Generated with Claude Code
Recorded residuals (Claude Opus 5.5 delta read at c9ec642)
tools/adoption/host_baseline_probe.py:204-206;tools/adoption/host-baseline.md:69-75..component) in a value that also contains whitespace or a line break is neither converted nor caught. The previous head normalized it.