Development record
A planted gitfile defeats the toplevel check that GHSA-6wfm-pfhv-w267 added: with `core.worktree=../..` in a checkout `co` and a one-line `<parent>/.git` reading `gitdir: co/.git`, `holdsGitDir` accepts the parent, so `Toplevel` and `CheckoutRoot` return the parent and every store, the implement run and its `git add -A` address a directory outside the checkout.
A planted gitfile defeats the toplevel check that GHSA-6wfm-pfhv-w267 added: with core.worktree=../.. in a checkout co and a one-line <parent>/.git reading gitdir: co/.git, holdsGitDir accepts the parent, so Toplevel and CheckoutRoot return the parent and every store, the implement run and its git add -A address a directory outside the checkout.
Private security advisory GHSA-rh6r-8hjh-rvv3 (draft, severity high). Full text, evidence and reproduction: .abcd/.work.local/scratch/security-drain-2026-10-11/advisories/ in the main checkout's local tier. This record stays uncommitted until its fix lands; the fix commit adds it directly to resolved/.
Evidence (main 3d171421a): holdsGitDir (internal/gitutil/repo.go) reads the gitfile's gitdir: line, joins a relative target onto the toplevel and accepts it on os.SameFile, with no check that the target lies inside the toplevel it is vouching for. CheckoutRoot returns that toplevel; implementRun assigns it to the run's RepoRoot. Confirmed by reading the code at that commit; not re-run.
Grounds
- declined: Not abcd's vulnerability under abcd-fixes-what-it-adds: with the planted gitfile and core.worktree, plain git itself treats the parent as the checkout (rev-parse --show-toplevel prints it and git add -A stages its files; tested 2026-10-11), so abcd following git's answer adds no route. Both available refusals change how repositories work (one is bypassable from a linked worktree and refuses a symlinked .git that works today; the strict one refuses deliberate core.worktree layouts). The run tripwire watches core.worktree and extensions.worktreeConfig, per-worktree config included, so a change during a run stops abcd's next git step.
Frontmatter
| id | iss-2610111600048326 |
|---|---|
| type | issue |
| lifecycle | wontfix |
| severity | minor |
.abcd/work/issues/wontfix/iss-2610111600048326-gitfile-lets-core-worktree-name-parent.md
open on GitHub ↗ · commit history ↗
References1
- iss-2610111600058575`abcd implement step --restart` snapshots the lane worktree with `read-tree` and `add -A`, then runs `reset --hard` and `clean -fd`, all without `FilterOverrides`, so a clean or smudge filter the lane's `.gitattributes` and git config name runs as the operator. The rate-limit checkpoint calls the same `saveAside` with reset for an implementer.blocked by