Skip to content

Host baseline probe privacy follow-up: login-bearing version suffixes, home traversal per line, path-only normalization, distinct subtest ids - #748

Merged
seathatflowsinourveins merged 6 commits into
mainfrom
foundation/host-baseline-privacy-r5-20261005
Oct 5, 2026
Merged

seathatflowsinourveins merged 6 commits into
mainfrom
foundation/host-baseline-privacy-r5-20261005

Conversation

@seathatflowsinourveins

@seathatflowsinourveins seathatflowsinourveins commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Scope

SOTA sources

Evidence-class table

Claim Evidence class Command / receipt
Each leak path is refused synthetic (unit tests) python3 -m unittest tests.test_host_baseline_probe: 28 OK (builder-reported). Each new control failed against the prior head.
Trailing text is preserved synthetic 12 controls across output, stderr, command and key
Line-ending traversal is refused synthetic newline and carriage-return fixtures in 4 locations; the reviewer also checked U+2028, U+2029, U+0085, \v, \f and \x1c
The historical artifacts are unchanged local check 6 artifacts and 4 receipts are byte-identical

Local commands run

$ python3 -m unittest tests.test_host_baseline_probe   OK (28)
$ python3 scripts/validate.py                          exit 0
$ python3 scripts/evidence_manifest.py --check         exit 0
$ git diff --check                                     exit 0

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).

  • r5: the Claude Opus cross-family read returned ACCEPT with 3 P2s. All were fixed in r6.
  • r6: the Opus delta read returned ACCEPT and confirmed all 4 prior items fixed. It raised one new doc-only P2, recorded as a residual below.

Checklist

  • No GitHub Actions or workflow changes.
  • No secrets printed, logged or committed.
  • No new paid hosting, subscription or billing surface.

🤖 Generated with Claude Code

Recorded residuals (Claude Opus 5.5 delta read at c9ec642)

  • P2 (documentation only; non-blocking). tools/adoption/host_baseline_probe.py:204-206; tools/adoption/host-baseline.md:69-75.
    • The case: values that contain whitespace are no longer normalized. So for a home outside the /home/ tree, a leading home reference that is spelled non-canonically (a doubled slash or a . component) in a value that also contains whitespace or a line break is neither converted nor caught. The previous head normalized it.
    • Exposure: hosts whose homes are under /home/ are not exposed, since the home-prefix gate refuses such values with exit 3.
    • Suggested fix: one guide clause naming this case for homes outside /home/. No code change.

Scout and others added 6 commits October 5, 2026 05:30
… 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]>
@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Oct 5, 2026
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Claude session native-agent-stack-5f: landing at head c9ec642656aabb772cc1654265bbe5afda927d1c. The command center (wsl-architecture-design) gave its ACK at this exact head; under the user's 2026-10-04 decision it owns merges that touch the hot registry. The read-only cross-family review (GPT-6.1 Sol max, the packaged Codex SDK worker) returned ACCEPT at 26d6bdd7bd9a; this head is reached from it through recorded carry edges (equal owned patch-ids, or a cross-family delta read returning ACCEPT at the edge's target), with no P1 item.

Observed main 9e955327702e6b7a8dd1909b2884196726a15ba5. coordination/merge_tree_landing_check.py (sha256 a11649fcf2e5844c…) exit 0:

main 9e955327702e6b7a8dd1909b2884196726a15ba5 head c9ec642656aabb772cc1654265bbe5afda927d1c base ec0b8fd821a7b2004c331d2185b33d9e5ed47896 merged-tree de43fca6b2af21f6287fac6905c242fc1ecd6d8a merge-tree-exit 0
ok   1: clean three-way merge
ok   2: merged-vs-main paths 5, outside PR-owned 0 []
ok   3: main drift 174 paths, overlap with PR-owned inputs (registry excluded) []
ok   4: registry foreign rows equal True, order preserved True, PR-owned rows 4, unowned top-level keys differing []
ok   5: merged files[] sorted by path with no duplicates: True (10187 rows)
LANDABLE
condition 5: merged files[] sorted and unique (tree de43fca6b2af21f6287fac6905c242fc1ecd6d8a)

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): tests.test_runtime_worker_openhands_push_gate OwnedPathGateTests.test_case_and_unicode_collisions, controls case_collision and unicode_nfc_collision.

  • Cause: the test fixture writes the colliding paths through the filesystem. macOS APFS is case- and normalization-insensitive, so each pair collapses into one path, and the gate correctly passes.
  • Scope: a test-fixture defect, not a gate defect.
  • Fix: on branch foundation/resolver-push-gate-macos-collisions-20261005.

@seathatflowsinourveins
seathatflowsinourveins merged commit e7d94e7 into main Oct 5, 2026
27 of 30 checks passed
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Claude session native-agent-stack-5f: post-merge observation. Landed as e7d94e7bcc074edba093994c8853e59b650ce7e0 (parent 9e955327702e6b7a8dd1909b2884196726a15ba5), tree de43fca6b2af21f6287fac6905c242fc1ecd6d8a. The landed tree equals the checked merged tree and the parent is the observed main.

@seathatflowsinourveins
seathatflowsinourveins deleted the foundation/host-baseline-privacy-r5-20261005 branch October 5, 2026 16:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant