Security teams detect cross-plugin request forgery by tracing whether one plugin causes another plugin to make an unauthorised request using shared trust in the same chat or workflow. Look for unexpected tool invocations, requests made on behalf of a different plugin, and calls that follow user-controlled content rather than explicit policy. Separate plugin permissions and require strict request validation.
What cross-plugin request forgery looks like in practice
Cross-plugin request forgery is usually a trust-boundary problem inside a shared assistant, chat, or workflow environment. One plugin should not be able to cause another plugin to send a request unless that action is explicitly intended and validated. Detection starts by asking whether the request path matches the initiating plugin, the expected tool chain, and the approved purpose.
Teams should treat the signal as suspicious when a request is technically valid but operationally out of place. A plugin may appear to be “using” another plugin’s capability, yet the real issue is that shared context, forwarded content, or implicit delegation let one component trigger another component’s action without a clean authorisation decision.
That is why the best detector is not just request logging, but request attribution. You want to know which plugin initiated the call, which plugin executed it, what input was carried across, and whether the action was supposed to be reachable from that conversation or workflow state.
Signals that separate normal chaining from forged cross-plugin action
The most useful alerting pattern is to compare expected tool flow with observed tool flow. A benign sequence usually shows a clear initiating plugin, a known dependency, and a request that stays within declared permissions. A forged sequence often shows a plugin that never asked for the action but still appears in the execution path, or a request that inherits user-controlled content without a matching policy decision.
Look for requests that are triggered indirectly rather than by an explicit user command or policy-approved event. That includes unexpected tool invocations, requests made on behalf of a different plugin, repeated calls that do not fit the plugin’s normal behaviour, and requests whose parameters are dominated by text or structured content that the user could influence.
Useful telemetry includes plugin identity, tool name, target endpoint, originating conversation or workflow, request provenance, and whether a cross-plugin handoff occurred. When those fields are missing, detection becomes much weaker because the team cannot tell whether the request was collaborative automation or unauthorised delegation.
How to confirm abuse without overcalling every handoff
Not every cross-plugin request is malicious. Some systems are designed to let plugins cooperate, so the practical task is to distinguish approved delegation from unauthorised delegation. A request becomes concerning when the destination plugin had no reason to trust the source plugin for that specific action, or when the request arrived with input that should have been sanitised, scoped, or rejected before execution.
One reliable test is to trace the request backwards. If the call can only be explained by shared trust in the same chat or workflow, rather than by an explicit permission grant, that is a design weakness worth investigating. If the request only succeeds because the system treats one plugin’s content as another plugin’s instruction, the platform is likely missing a hard boundary between data and authority.
Teams can strengthen detection by separating permissions per plugin, validating request intent before execution, and recording which validation rule approved the action. That makes it easier to spot forged requests later, because the execution path will either have a clear policy basis or an obvious gap.
Risk and Threat Considerations
Cross-plugin request forgery matters because shared trust can turn one plugin compromise, or one manipulated prompt, into a second unauthorized action in a different plugin. The immediate risk is not just bad output, but unintended side effects such as data access, state changes, external requests, or credential use that the second plugin was never meant to perform.
Failure mechanism: One plugin injects or shapes content so another plugin treats it as a trusted request, then executes an action outside the original user intent or policy boundary.
Impact: Attackers can pivot across plugins, trigger unauthorised tool use, and broaden the blast radius of a single compromised conversation, workflow, or integration.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Agentic AI Top 10 and OWASP API Security Top 10 address the attack and risk surface, while NIST SP 800-53 Rev 5 and OWASP ASVS set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Agentic AI Top 10 | ASI03 — Identity & Privilege Abuse | Cross-plugin forgery abuses delegated authority between plugins. |
| Recommendation — Separate plugin authority and validate every delegated request before execution. | ||
| OWASP API Security Top 10 | API5 — Broken Function Level Authorization | The issue is unauthorized access to another plugin's function path. |
| Recommendation — Enforce function-level authorization for every plugin-to-plugin action. | ||
| NIST SP 800-53 Rev 5 | AU-2 — Audit Events | Detection depends on logging plugin initiators, targets, and request provenance. |
| AC-6 — Least Privilege | Separate plugin permissions to limit what one plugin can cause another to do. | |
| Recommendation — Log initiator, target, and provenance for each cross-plugin request. Restrict each plugin to the minimum actions needed for its role. | ||
| OWASP ASVS | V8 — Authorization | The core control is ensuring requests are authorized before execution. |
| Recommendation — Require explicit authorization checks before accepting inter-plugin requests. | ||
Practitioner Guidance
What to verify: Confirm that every cross-plugin request has an attributable initiator, a policy decision, and a reason the target plugin is allowed to act on that input. If any one of those is missing, treat the event as a control failure rather than a benign integration detail.
Decision rule: If the destination plugin can be triggered by user-controlled content alone, require stronger request validation and reduce trust in shared conversational state. If the call needs to be safe, make the approval path explicit and auditable rather than inferred from context.
Practitioner takeaway: The key question is not whether plugins can cooperate, but whether each cooperative action is separately authorised and observable. If the request cannot be tied to a legitimate, bounded delegation, it is already a detection problem.
Related resources from NHI Mgmt Group
- How should security teams prioritise cross-site scripting, server-side request forgery, and account takeover findings from bug bounty reports?
- Why are NHIs a critical concern for security teams?
- What steps should security teams take to prevent Shadow AI risks?
- Why is the abuse of NHIs a priority for security teams?
Deepen Your Knowledge
Free weekly newsletter
Subscribe to the NHI & AI Identity Journal
The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.
Bonus 33% off our NHI Course when you subscribe.
Reviewed and updated by the NHIMG editorial team on October 18, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org