ROOTVIELROOTVIEL
← Agentic Security

Agentic Security

Implemented9 min

Agent authority and the lethal trifecta

When a model can plan and call tools, security becomes about authority: what the system is allowed to do, regardless of what the model decides. A family of invariants makes "allowed" precise.

Authority, not intent

Once an agent can act, the useful question is not "did it intend well?" but "could it have done more than its task requires?". The engine encodes this as invariants over the agent’s effective authority — the set of actions reachable through its tools — and checks that this authority does not exceed the agent’s declared purpose.

  • ▸Delegated authority must only decrease: a sub-agent can never hold more than its parent.
  • ▸Reachable tool authority must not exceed purpose: the tools in reach must match the job.
  • ▸Irreversible actions require a human in the loop, and the approval must bind to the exact effect.

The lethal trifecta

A specific, dangerous pattern recurs: when a single agent has access to private data, exposure to untrusted content, and the ability to exfiltrate, those three capabilities together are enough for an injected instruction to read a secret and send it out. The engine reasons about whether these three are co-reachable, because any system where they are is one successful injection away from data loss.

Private data
Secrets, internal records, anything the agent can read but should not leak.
Untrusted content
Anything an attacker can influence — a document, a web page, a tool result.
Exfiltration
Any capability that moves data outward — a request, an email, a write to a shared store.

Memory, delegation and human approval

Other invariants cover the quieter failure modes: untrusted memory must not cause a privileged action (a note planted once must not steer unrelated future sessions); a poisoned output must not propagate across agents; request amplification must stay within budget, so an agent cannot be turned into a denial-of-wallet. Human-in-the-loop approvals are themselves guarded: an approval must bind to the exact effect it authorizes, and approvals must not be fatigued into rubber-stamping.

Tools and MCP as an attack surface

Tools can lie about themselves. Under the Model Context Protocol, a tool description or result is itself untrusted input. The engine checks that tool metadata carries no hidden instructions (tool poisoning), that a tool has not drifted from its approved schema (rug-pull), that two tools sharing a name do not diverge in authority (shadowing), and that the overall topology preserves trust boundaries. A change to a tool’s schema invalidates any prior approval of it.

Note

Status: these invariants are implemented and settled by deterministic verifiers over a static surface and over an enumerated live server. Live-server red-teaming of the protocol is experimental, and we do not quote detection rates.

References

  1. [1]OWASP Agentic Security Initiative
  2. [2]Simon Willison, the lethal trifecta
  3. [3]Model Context Protocol specification
  4. [4]MITRE ATLAS

References point to public, well-known technical sources for further study.

Related articles