Skip to the content.

idea-scout triage — Tool-Guard / isolated planning (issue #527)

Closes the daily idea-scout candidate #527 (tools/idea_scout.py, filed 2026-06-23). The scout judges whether a candidate is new and on-topic; this note is the human triage it hands off — adopt, defend against, or cite as prior art (see docs/idea-scout.md). Verdict: a threat to defend against (records a real residual gap) AND prior art to cite.

Source: https://arxiv.org/abs/2606.20922 — “Think Twice Before You Act: Protecting LLM Agents Against Tool Description Poisoning via Isolated Planning”, Shanghao Shi, Xiao Wang, Chaoyu Zhang, Hao Li, Wenjing Lou, Thomas Hou (submitted 2026-06-18). Read from the arXiv abstract via WebFetch on 2026-06-23; this is a surface read of the abstract, not a paper audit or a reproduction.

The attack: cross-tool description poisoning

The paper names a tool-agent attack surface distinct from prompt injection. Cross-tool description poisoning manipulates planner-visible tool metadata — a tool’s description in the catalog the planner sees — to steer the agent’s trajectory, even if the poisoned tool itself is never chosen. The load-bearing observation: a poisoned description persists in the planning context across steps, so it exerts continuous influence over every subsequent tool choice, not a one-shot nudge. The authors first show that several existing prompt-injection defenses transfer poorly to this threat, because those defenses screen tool inputs/outputs (or a single turn’s user text), not the standing catalog metadata the planner re-reads each step.

The defense: Tool-Guard via isolated planning

Tool-Guard is a system-level defense built on a new primitive the paper calls isolated planning: when a tool invocation is detected as misaligned or suspicious, that tool is moved onto a quarantined “influenced list”, which breaks the further influence of its description on planning — while still letting the tool be invoked to support the task. The novelty is the axis of the quarantine: it isolates a tool’s description-time influence over the plan, not the tool’s call or its result bytes. Reported to cut attack success substantially on AgentDojo and ASB while keeping task utility (per the abstract; not re-measured here).

Why it surfaced next to fak, and where fak actually stands

fak’s security floor adjudicates two boundaries — and neither is the one this attack targets:

Boundary fak surface (CLAIMS.md) Does it cover description poisoning?
The tool call Capability lock at k.Decide / Syscall (default-deny, closed 12-reason refusal) Partial. Catches a poisoned description that tries to induce a destructive call — but the attack’s whole point is steering the trajectory without the poisoned tool ever being chosen, so the call gate never fires on it.
The tool result Result-admit gate + normgate rescan: secret/poison-shaped tool output is QUARANTINED, paged to a stub, K/V span evicted (CLAIMS.md result-quarantine, KV-quarantine bridge) No. Quarantine acts on bytes coming out of a tool. A tool description is metadata going into the planner; it never passes through the result-admit gate.
The tool description — (no description-admit gate today) This is the gap. Catalog metadata enters the planning context unscreened and unprovenanced.

So the honest read is that cross-tool description poisoning is a third axis — description-time, planning-context — orthogonal to fak’s call-time capability lock and its result-time quarantine. fak does not currently gate it. Recording that residual honestly is the point of this note; claiming the existing floor already covers it would be the kind of unwitnessed claim CLAIMS.md exists to prevent.

Triage decision

Action: close #527 as triaged → defend-against + prior-art cited (this note). No code change in this increment: tools/idea_scout.py surfaced and scored the candidate correctly (topic prompt-injection-defense, score 63), and the right small artifact for a research/security triage is the recorded verdict + the named gap, not a half-built gate.

Next step (the smallest honest follow-on, if pursued): a description-admit rung — provenance-stamp each tool’s catalog metadata at registration and refuse (or trust-bound) an unprovenanced/low-trust description from influencing planner tool-selection — filed as its own scoped issue against internal/ctxmmu / internal/provenance, with an AgentDojo/ASB cross-tool-poisoning fixture as its witness. It reuses the existing admit/quarantine and provenance seams rather than importing Tool-Guard’s detector.