Disclaimer
This article is intended for informational purposes and reflects the state of published research and industry practice as of its publication date. It is not professional security advice. Your specific environment, threat model, and regulatory obligations will shape how these principles apply to your situation. The views and opinions expressed here are my own and do not represent the position of my employer, SAP, or any other affiliated organization.
For Security Leaders
An agentic application has two security surfaces, and the dangerous paths run between them rather than staying inside one. A configuration change an ordinary database review would wave through can alter what an autonomous agent believes its tools do. Reviewing the conventional application and the agent layer separately leaves the paths between them unowned.
What this means for your organization:
Split reviews create blind spots: paths beginning in ordinary code and ending in agent behaviour fall between your two reviews.
Ordinary bugs gain larger consequences: an access-control gap reaches further in an agentic system than in a conventional one.
Architecture raises questions, not findings: a design review tells you where to test, not what is broken.
What to tell your teams:
Ask who can change agent configuration, and confirm authorization is checked server side on every write, not once at login.
Treat server identity and tool honesty as separate controls when reviewing Model Context Protocol integrations.
Verify that telemetry arrives, since a healthy connection does not prove anything was received.
Give every unanswered design question an owner and a date, then close it by testing.
FinBot has a configuration store, a set of agents and an MCP server those agents use to reach their tools. The architecture diagram does not tell us what is inside that configuration store or who can change it. If tool descriptions or other information an agent relies on can be changed at runtime, who is allowed to change them?
I do not know whether FinBot stores tool descriptions there. The diagram is not enough to prove that. But it shows enough of the architecture to make the question valid, and that is what threat modeling should do: give us questions worth testing.
In the previous article I proposed using several frameworks together instead of trying to find one that somehow covers everything. STRIDE deals well with the traditional application-security side. MAESTRO helps follow trust through an agentic architecture. OWASP gives names to failures that are specific to agents. MITRE ATLAS becomes useful when we can describe a concrete adversary action.
I ran that method against FinBot. It produced twelve questions.
Five questions I use for each threat
FinBot is OWASP’s deliberately vulnerable training application for agentic finance workflows. It onboards vendors, approves invoices, moves money and sends communications. Behind those workflows are specialized agents, a supervisor, persisted data, MCP and external integrations.
That gives us two security surfaces to look at. The first is familiar: sessions, APIs, databases, authorization, backups, webhooks and tenant isolation. The second appears because models are now making decisions and taking actions: untrusted data enters model context, agents choose tools, state survives between sessions and one agent can instruct another.
For every possible threat I ask:
Which business objective can this reach?
What does STRIDE tell me about the deterministic part of the system?
Where does the consequence appear in MAESTRO?
Does an OWASP agentic category fit?
Does ATLAS describe a concrete attacker technique?
There is one rule behind all of this: the architecture can tell me where to look, but it cannot prove that a vulnerability exists. If the diagram shows a database, I can ask how authorization is enforced. I cannot conclude there is no authorization because the diagram does not show it.
The result is therefore a list of questions, not findings.
It is also not the whole list. A real engagement would work through every component and every boundary on the diagram and finish with considerably more than twelve entries. What follows is the subset that shows the method doing something worth watching, including the places where it stops working cleanly.
To continue reading this article, please subscribe, the entire article is available for free for all subscribers (free or paid).
What I would test next
The frameworks helped me find and describe the paths. They did not tell me which problem matters most.
FinBot exists to onboard vendors, approve invoices, move money and send communications. Risk comes from what a threat can do to those objectives, not from whether the threat has an interesting agentic name.
The next step is therefore validation. I would start by checking:
authorization around changes to tool configuration;
whether poisoned information can survive through agent memory;
tenant filtering on vendor and invoice queries;
Stripe payment-event authentication;
request and agent-level rate limits;
whether telemetry reaches the intended logging destination.
Some of those tests may close the threat immediately. Others may expose another step in the attack chain. Either result is useful because the point of the threat model is to reduce assumptions and give us a concrete list of things to verify.
Peace. Stay curious! End of transmission.
Fact-check appendix
Statement: FinBot’s architecture diagram shows five data stores (Invoices, Vendors, Agent Memory, Config and Emails), five agents coordinated by a supervisor, an MCP host and server pair, external integrations including Google Drive and Stripe, and an event stream feeding a portal. Agent Memory and the event-stream block are marked as not yet built, and Config as partial. The diagram does not describe the contents of any store, the authorization on any endpoint, or the presence of any specific control.
Source: FinBot architecture diagram, published with article 074 in this series and byte-identical to the upstream repository’s docs/architecture.md at commit 1450fc4d (Apache 2.0).
Statement: MAESTRO is the Cloud Security Alliance’s layered threat-modeling framework for agentic AI, published February 2025, spanning Foundation Models, Data Operations, Agent Frameworks, Deployment and Infrastructure, Evaluation and Observability and the Agent Ecosystem, with Security and Compliance specified as a vertical across the rest.
Source: Cloud Security Alliance, “Agentic AI Threat Modeling Framework: MAESTRO,” February 2025. https://cloudsecurityalliance.org/blog/2025/02/06/agentic-ai-threat-modeling-framework-maestro
Statement: OWASP’s Top 10 for Agentic Applications, published December 2025, supplies the categories referenced here: Agent Goal Hijack, Tool Misuse and Exploitation, Identity and Privilege Abuse, Agentic Supply Chain Vulnerabilities, Memory and Context Poisoning, and Insecure Inter-Agent Communication.
Source: OWASP GenAI Security Project, “OWASP Top 10 for Agentic Applications 2026,” December 2025. https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/
Statement: MITRE ATLAS technique AML.T0110, AI Agent Tool Poisoning, created 30 March 2026, describes adversaries poisoning tools used by AI agents including tools reached over Model Context Protocol connections, by modifying parameters or descriptions, injecting hidden logic or redirecting outputs. It carries three sub-techniques: AML.T0110.000 Definition and Instructions, AML.T0110.001 Implementation and AML.T0110.002 Runtime Response.
Source: MITRE ATLAS, release 2026.09 (release date 15 September 2026), dist/v6/ATLAS-2026.09.yaml. https://github.com/mitre-atlas/atlas-data/blob/main/dist/v6/ATLAS-2026.09.yaml
Statement: MITRE ATLAS technique AML.T0118, Autonomous AI Agent Communication, created 31 August 2026, describes autonomous agents exchanging operational information with other agents, sub-agents or independent agent runs, including discoveries, tasking, capabilities, credentials, constraints and results. It carries two sub-techniques: AML.T0118.000 Communication via Shared Artifacts and AML.T0118.001 Direct Agent Communication.
Source: MITRE ATLAS, release 2026.09, as above.
Statement: MITRE ATLAS covers indirect prompt injection as AML.T0051.001 Indirect, a sub-technique of AML.T0051 LLM Prompt Injection.
Source: MITRE ATLAS, release 2026.09, as above.
Statement: MITRE ATLAS covers compromise of an agent’s tooling through the supply chain as AML.T0010.005 AI Agent Tool, a sub-technique of AML.T0010 AI Supply Chain Compromise, and covers the act of publishing a poisoned tool as AML.T0115.002 AI Agent Tools, a sub-technique of AML.T0115 Publish Poisoned AI Artifacts.
Source: MITRE ATLAS, release 2026.09, as above.
Statement: MITRE ATLAS covers agent context and memory poisoning as AML.T0080 AI Agent Context Poisoning, with sub-techniques AML.T0080.000 Memory and AML.T0080.001 Thread.
Source: MITRE ATLAS, release 2026.09, as above.
Statement: MITRE ATLAS groups resource-consumption behaviour under AML.T0034 Cost Harvesting, with sub-techniques AML.T0034.000 Excessive Queries, AML.T0034.001 Resource-Intensive Queries and AML.T0034.002 Agentic Resource Consumption. The last describes coercing an agent into expensive internal activity, which is distinct from an external actor generating a high volume of ordinary requests.
Source: MITRE ATLAS, release 2026.09, as above.
Statement: The current Model Context Protocol specification revision is 2026-07-28. It adds authorization hardening over earlier revisions, including mandatory RFC 9207 issuer validation by clients, mandatory RFC 8707 resource indicators, and credential isolation requirements: clients must not send tokens other than those issued by the MCP server’s own authorization server, and servers must not accept or transit any other tokens.
Source: Model Context Protocol specification, revision 2026-07-28, Authorization. https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization
Statement: Authorization nevertheless remains OPTIONAL for MCP implementations in that revision, and implementations using the STDIO transport SHOULD NOT follow the authorization specification, retrieving credentials from the environment instead.
Source: Model Context Protocol specification, revision 2026-07-28, Authorization, Protocol Requirements. https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization
Top 5 sources
MITRE ATLAS, release 2026.09 (15 September 2026). Queried directly from the project’s distribution file rather than from a third-party mapping, which matters here because the agentic techniques used in this article were added between March and August 2026 and older summaries do not carry them.
OWASP GenAI Security Project, “OWASP Top 10 for Agentic Applications 2026” (December 2025). The source of every agentic failure category named in this article, produced under OWASP’s Agentic Security Initiative with a documented review process.
Cloud Security Alliance, “Agentic AI Threat Modeling Framework: MAESTRO” (February 2025). The layered model used here to follow a consequence that begins in one layer and surfaces in another.
Model Context Protocol specification, revision 2026-07-28. The normative text behind both the authorization improvements and the remaining gap: authorization is stronger than it was, and still optional.
FinBot’s own architecture diagram, published with article 074 and byte-identical to the upstream repository’s
docs/architecture.md. The sole input describing the system under analysis, and the reason every entry here is a question rather than a finding.
P.S. How AI was used in the creation of this piece:
The idea is mine.
AI helps me brainstorm the argument’s spine and structure.
AI helps me with research, which I verify before anything goes into the article.
I write the full draft myself, over the course of several days.
I pass the draft through AI for an editing pass, using prompts I designed myself.




