This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

The machine credential store is less strict than its sibling the rules loader about ~/.abcd: credential.SetMachine writes credentials.json and its lock through a ~/.abcd symlinked to an existing directory (a dotfiles checkout), where the rules loader refuses rules.json behind a symlinked ~/.abcd, so a secret can land in a dotfiles repository; and the store's lock files are created 0644 while a pre-existing 0755 ~/.abcd is never tightened, so any local user who can open a lock (a read-only descriptor holds LOCK_EX) can stall every connect for its five-second wait.

issueresolvedminoriss-2609260958587561

The machine credential store is less strict than its sibling the rules loader about ~/.abcd: credential.SetMachine writes credentials.json and its lock through a ~/.abcd symlinked to an existing directory (a dotfiles checkout), where the rules loader refuses rules.json behind a symlinked ~/.abcd, so a secret can land in a dotfiles repository; and the store's lock files are created 0644 while a pre-existing 0755 ~/.abcd is never tightened, so any local user who can open a lock (a read-only descriptor holds LOCK_EX) can stall every connect for its five-second wait.

Grounds

  • pursued: SetMachine through a symlinked ~/.abcd leaves the link target empty and errors naming ~/.abcd, Resolve refuses a store behind it, and the store lock is owner-only even after a 0644 lock from an earlier version (TestSetMachineRefusesASymlinkedAbcdHome, TestResolveRefusesAStoreBehindASymlinkedAbcdHome, TestTheStoreLockIsOwnerOnly); a lock with a group or other bit after a write, or any file behind the link, would show it wrong.

Frontmatter

idiss-2609260958587561
typeissue
lifecycleresolved
severityminor

mentions2