Detects agent-to-agent calls without authentication, authorization, or
Scanned 9/9/2026
Install to Claude Code
npx -y skills add thejefflarson/soundcheck --skill multi-agent-trust --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Multi Agent Trust?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/thejefflarson-multi-agent-trust)More formats (shields.io, HTML) on the badges page.
---
name: multi-agent-trust
description: Detects agent-to-agent calls without authentication, authorization, or
permission scoping. Use when writing code that calls other agents, spawns
subagents, builds multi-agent pipelines, or passes messages between LLM
agents. Also invoke when an orchestrator delegates tasks to worker agents or
when agents share tools and permissions.
---
# Multi-Agent Trust Boundaries (LLM08:2025)
## What this checks
Detects agent-to-agent calls that lack authentication, authorization, or permission
scoping. When agents blindly trust messages from other agents, a compromised or
malicious agent can hijack the entire pipeline.
## Vulnerable patterns
- Inter-agent call dispatched with no authentication header or signed token
- Worker or subagent initialized with the orchestrator's full credentials and complete tool scope
- Output from one agent passed as input to the next without schema validation
- Receiver that trusts a sender identity claim with no cryptographic verification
## Fix immediately
Flag the vulnerable call site and explain the risk. Then suggest a fix that
establishes these properties:
1. **Authentication on every agent-to-agent call.** A shared secret, signed token,
or mTLS credential is attached by the caller and verified by the receiver
before any task runs. A sender-name field is not authentication.
2. **Least privilege per agent.** Each agent is initialized with the smallest
set of tools, credentials, and scopes it needs to complete its task — never
the orchestrator's full set. A compromised worker should not have the keys
to compromise the rest of the pipeline.
3. **Schema validation on every received message.** Treat messages from other
agents as untrusted input: validate against a schema, reject unexpected
fields, and refuse to execute free-form instructions embedded in the payload.
4. **No blind execution of peer-supplied instructions.** Agent output that names
a tool or action is routed through the same policy gate as a user request,
not auto-dispatched.
Translate each principle to the transport, auth library, and validator of the
audited code. Use the framework's documented auth-middleware and schema-validation
APIs — do not roll your own.
## Verification
- [ ] For every outbound agent-to-agent call present, an auth header or signed token is attached
- [ ] For every agent-to-agent receiver handler present, the auth token is verified before processing
- [ ] Each agent is initialized with the minimum permissions needed for its task
- [ ] For every response received from another agent, the payload is validated against a schema before use
- [ ] No agent blindly executes instructions received from another agent
## References
- CWE-306 ([Missing Authentication for Critical Function](https://cwe.mitre.org/data/definitions/306.html))
- CWE-272 ([Least Privilege Violation](https://cwe.mitre.org/data/definitions/272.html))
- [OWASP LLM08:2025 Excessive Agency](https://owasp.org/www-project-top-10-for-large-language-model-applications/)
- [OWASP Agentic AI Top 10:2025](https://owasp.org/www-project-top-10-for-large-language-model-applications/)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!