Skip to content

Nested task-spawned builders are send-only ghosts: no registry row, affinity NOT_FOUND, sends fall through to MAIN — an instruction-injection surface #1254

Description

@waleedkadous

Found in the shannon workspace, 2026-07-26. Mechanism details + evidence from two architects.

Setup: a strict builder (builder-spir-3276) spawned a task builder from INSIDE its own worktree; the child landed nested at .builders/spir-3276/.builders/task-w-yI with branch builder/task-w-yI, a live shellper session — and no row in the Tower registry (afx status lists 18 builders, no match).

Three resulting defects, all observed:

  1. Send-only ghost: the nested builder can afx send successfully, but afx send task-w-yi from an architect returns NOT_FOUND — it cannot be reached or redirected.
  2. Affinity broken: from its worktree, afx send architect returns NOT_FOUND (no spawner affinity registered).
  3. Fallback misroute: the workspace-qualified form it fell back to resolves to the architect named main — NOT its lane's architect. Its full work verdict was delivered to an unrelated architect verbatim.

Security framing (agreed by both architects involved): an unregistered sender falling through to main carrying a legitimate-looking builder-* name is an instruction-injection surface, not just noise — the spoofing check that governs registered builders never applies to a sender with no registry row. Today the payload was a benign stall-recovery probe; the same path delivers arbitrary instructions with apparent builder provenance.

Evidence: main architect's failed reach-back (afx send task-w-yi → NOT_FOUND) is the receive half; the misdelivered verdict (received by main 2026-07-26T16:58Z, sender builder-task-w-yi) is the send half.

Likely related: #1224 (registry family).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions