AI Agent Skill Security: Verify the Chain

AgentSunrise
AI Agent Security
Agentic System Security
MCP Protection
Skill Verification

Briefly: checking each AI agent skill separately does not prove the safety of the end-to-end workflow. Risk emerges when one skill reads sensitive data, a second turns it into a normal work artifact, and a third sends, executes, or stores the result. That’s why before launch you need to check not only packages, but also the allowed data and effect chains in runtime.

This material is intended for CTOs, CISOs, process owners, and teams connecting skills, plugins, MCP servers, and business systems to agents. It explains architectural validation of chains; product-specific auditing, legal assessment, and promises of complete protection are out of scope.

Contents

What the CompoSkill study showed

On August 17, 2026, a preprint was published on arXiv CompoSkill: Compositional Skill Chain Attacks from Individually Scanner-Passing LLM Agent Skills. Its main thesis: the status of “passed the scanner” applies to one skill, but risk can appear only after several skills are combined into a route.

The authors assembled CompoSkill-Bench with 1,140 records: 380 professional tasks in clean, explicit, and implicit attack variants. The set covers five threat types, six work scenarios and 76 roles across two agent environments—OpenClaw and Nanobot. In experiments, the rate of forming a risky chain reached 83.3% in white-box and 80.6% in black-box mode. These are metrics for a specific benchmark, not an estimate of attack probability in a company.

The black-box scenario is especially important: the attacker did not name skill identifiers. They phrased a plausible work task, and the agent itself found the right combination. In the DevOps example, one skill read configuration, a second formatted it as an audit report, and a third sent the report outside. Each component could look normal on its own.

The study compared three scanners in strict blocking mode. After the flagged packages were removed, the chain formation rate in one configuration fell from 63.2% to 36.8–40.8% for two scanners and to 31.6% for the third. The authors interpret this as preserving 50–65% of the attack's compositional capability. The point is not that scanners are useless: they reduce the risk surface, but they do not observe the full path the agent will build during execution.

Why safe skills do not make a safe system

Compositional skill risk — a dangerous data or permission flow that appears only when several allowed components are called in sequence. One skill may have the right to read a file, another to transform data, and a third to send a message. None of them combines reading a secret with sending it outside, but their route does.

This is similar to transitive permission that no one explicitly granted:

read config
  → compile report
  → send to contractor

local permissions: allowed
end-to-end effect: the secret left the trusted zone

That is why a package inventory answers only the question, “what is installed?” For security, three more questions are needed:

  1. What states can each component read?
  2. What can its output turn into at the next step?
  3. What external, persistent, or privileged effect completes the route?

The same principle is already visible in official guidance. Google Cloud separately calls insecure tool chaining a risk in agent-only mode and recommends a dedicated identity with least privilege. The MCP specification prohibits token passthrough and requires binding the token to the target resource so a confused deputy is not created. NIST NCCoE centers identity, authorization, audit, and nonrepudiation of agent actions. These are independent confirmations of the architectural direction, not confirmation of the CompoSkill percentages.

The source—bridge—effect model

For an initial check, it is useful to break the route into three roles.

Role What it does Typical capabilities Main question
Source receives sensitive or control state files, config, database, memory, email what data can leave the trusted zone?
Bridge normalizes, summarizes, archives, or turns data into a command report, script, spreadsheet, attachment, prompt does the transformation hide the risk of the original state?
Effect creates an external, persistent, or privileged result network, shell, message, memory write, permission change can the action be stopped or rolled back?

The bridge is especially dangerous not because it is malicious. It makes the transition feel natural. In CompoSkill, the rate of building a leakage chain rose from 64.9% for two skills to 80.6% for three; for privilege escalation — from 65.8% to 71.1%. In the extended experiment, the average attack success rate rose from 35.2% at two steps to 55.4% at three, then declined to 37.8%, 33.6%, and 21.8% at four, five, and six steps. The authors call this bridge-bonus-then-hop-decay.

Practical interpretation: protect not every long sequence, but first of all short natural routes where the transformer connects the source to a strong effect. However, the study’s numerical thresholds should not be turned into a universal rule that only three-step paths are dangerous.

Which chains to look for in a business process

Threat Source Bridge Effect Example business invariant
Data leakage CRM, email, secrets, contracts summary or export external email, webhook, cloud drive confidential fields do not leave the approved destination
Memory tampering policy or agent memory a “helpful” instruction long-term record external data do not change the policy without a separate owner
Privilege escalation roles and environment script generator shell, IAM, admin API the granted permission is no broader than what the user delegated
Takeover of another agent handoff and routing state shared task inter-agent message the recipient rechecks the source and scope
Resource exhaustion quota and task status loop or retry plan repeat calls budget, depth, and number of retries are limited by policy

Do not stop at tool names. report-builder sounds harmless, but its output can save secrets in a document. email-sender does not know the attachment is sensitive. So it is more useful to describe capabilities as a flow: read:secret → transform:document → send:external.

For each path, record the trusted zones. Sending from CRM to an internal DLP boundary and sending the same object to any arbitrary address are different effects. Writing to a temporary scratchpad and changing an agent’s long-term memory are different levels of persistence.

The CHAIN method for route validation

We propose the CHAIN. It is an editorial synthesis of recent research and official security guidance, not an industry standard.

C — Goal

Write down the original business goal and the acceptable final result. The wording “prepare an audit” should not automatically include external sending or reading every configuration.

H — Natural route

Build the normal execution path at the capability level: what is read, transformed, stored, and sent. Separately note the steps the agent may add on its own.

A — Authorizations

For each call, specify the identity, resource, scope, duration, and delegating party. Issue a token to the target service; do not pass a universal user token along the chain.

I — Interruption

Define a control before the strong effect: policy denial, human approval, two-person rule, destination allowlist, or a safe fallback. Checking after the send detects an incident, but does not prevent it.

N — Sensitive data

Assign labels to inputs and intermediate artifacts. Summarization, archiving, or format conversion should not remove the classification of the original data.

K — Kill channel

List terminal capabilities: external network, messages, shell, database write, IAM change, publishing, memory. The worse the reversibility, the narrower the interface should be.

A — Audit

Preserve the actual trajectory: actor, delegated user, policy version, input labels, calls, arguments, control decision, recipient, result, and rollback handle. Do not copy secrets into the log; a secure link, digest, or redacted evidence is enough.

What controls to put in runtime

A batch scanner remains the first layer. It is useful for detecting dangerous code, excessive privilege declarations, known signatures, and suspicious instructions. But the decision on a specific route should be made closer to the effect.

User request / external data
             ↓
          Planner
             ↓
  Policy engine across the full trajectory
      ↙ deny   ↓ allow   ↘ approval
  narrow tool adapters with separate identities
             ↓
  Target system rechecks scope
             ↓
  Postcondition verifier + audit event

Minimum runtime stack:

  1. Separate identities. The agent and the user do not share a perpetual super-token.
  2. Narrow tools. send_approved_report(destination_id, artifact_id) is safer than a universal SMTP client.
  3. Data provenance labels. Data classification is carried through transformations.
  4. Destination verification. The allowlist takes into account the domain, tenant, project, and recipient type.
  5. Prohibit dangerous combinations. The policy evaluates the recent data source and the requested effect together.
  6. Budget limits. Limits on hops, retries, cost, time, and the volume of external operations.
  7. Independent verification. The result is read from the target system, not from the agent's text.

OWASP AI Agent Security Cheat Sheet recommends repeating security testing after significant changes to prompts, tools, memory, retrieval, policy, or model provider, and separately checking tool misuse, privilege escalation, memory poisoning, data exfiltration, and recursive tool abuse. This means the allowed graph cannot be certified once and for all.

Why approval and a scanner are not enough

Human approval is useful when a person can see a meaningful representation of the effect. The request 'allow email-dispatcher?' tells you almost nothing. You need the recipient, attachment classification, data provenance, diff, approval basis, scope of permission, and the ability to decline.

Bad approval becomes a rubber stamp if:

  • there are too many requests;
  • the agent shows only the tool name;
  • sensitive fields are hidden inside an archive or summary;
  • the confirmation applies to the plan, not the exact action;
  • one approval opens a series of future calls.

The scanner and approval solve different problems. The scanner evaluates a component before installation; approval checks a single action; the policy engine constrains the route; the target system protects its own invariants. Removing any layer increases dependence on the others.

The same principle applies to prompt injection. An injection can deliver a malicious goal, but damage only occurs if the infrastructure allows data and effect to be connected. Therefore general AI agent protection measures must be supplemented with path-level controls. And graph engineering helps make dependencies and execution points explicit.

How to run a safe pilot

  1. Choose one process. Record the owner, baseline, data, constraints, and acceptance criteria.
  2. Create a capability inventory. For each skill, describe read, transform, write, send, execute, and persist.
  3. Build a route graph. Start with short paths source → effect and source → bridge → effect.
  4. Document prohibited combinations. For example: customer_pii → external_message without DLP and separate approval.
  5. Grant minimum privileges. Create agent identity, resource-bound tokens, allowlists, and TTL.
  6. Run replay. Run normal tasks and five classes of attack scenarios on data copies.
  7. Switch to shadow mode. The agent builds the route, but strong effects are executed by a human or a simulator.
  8. Open limited execution. Allow only observably safe paths with a kill switch and rollback.
  9. Retest changes. A new skill, policy version, model, or integration creates a new graph.

The rollout order can be linked to a business-process audit before AI: first process boundaries and baseline, then tools and autonomy.

What to measure

Metric How to calculate What it shows What it does not prove
Forbidden path rate forbidden routes / all proposed routes the planner's tendency to assemble a risky path the likelihood of a real incident
Pre-effect block rate blocked before effect / all forbidden routes runtime policy performance absence of bypass channels
Approval precision meaningful rejections / all approval requests quality of routing to a human safety of automatically approved paths
Utility completion correctly completed clean tasks / clean tasks the control cost for a useful process the economic impact of implementation
Evidence completeness events with actor, scope, inputs, and result / all effects investigability correctness of the agent's decision
Recovery success successfully rolled back tests / rollback tests recovery effectiveness reversibility of external communications

Thresholds should be set based on process criticality and your own baseline. You should not use 83.3% or other CompoSkill figures as the target KPI: those are characteristics of an experimental setup.

Research Limitations

CompoSkill is published as arXiv v1; as of the observation date, independent peer review has not been confirmed. The experiments are limited to two agent environments, selected models, marketplace skills, synthetically assembled attack variants, and study judges. They demonstrate the existence and reproducibility of a risk class, but do not measure how common successful attacks are in real companies.

ASR and CFR measure different things: an agent may assemble a risky chain but never carry it through to a harmful effect. Lower numbers for one model in the table do not prove universal safety. Conversely, a high value in one scenario does not predict the outcome in your configuration.

Official guidance from Google Cloud, MCP, NIST, and OWASP confirms the need for least privilege, token-to-resource binding, auditing, and chain verification, but does not validate the CompoSkill methodology or percentages. Before moving to production, you need your own replay testing, adversarial tests, and validation of the target systems.

Frequently Asked Questions

What Is an AI Agent Skill

A skill is a pluggable instruction, tool, or capability package that helps an agent perform a class of tasks. Risk is determined not only by the skill code, but also by access to data, side effects, and connections to other skills.

Is It Enough to Scan Each Skill

No. A scanner reduces the risk of an individual component, but may miss a route that appears only during execution. You need a capability graph, runtime policy, and control over strong effects.

How Is a Compositional Attack Different from Prompt Injection

Prompt injection delivers someone else’s instruction to the agent. Compositional risk describes the infrastructure path by which several permissible skills turn an instruction into harm. Injection is possible without a successful effect if the route is constrained.

Which Chains Should Be Tested First

Short paths from secrets, configurations, databases, or memory to the external network, shell, messages, long-term storage, and permission changes. Special attention should go to the transformer between the source and the effect.

Should You Block the Agent from All External Actions

Not necessarily. It is safer to give a narrow interface, a separate identity, an allowlist of recipients, TTL, rate limits, data classification checks, and approval for exceptions than to provide a universal tool with broad permissions.

When Should You Repeat a Security Test

After changing the skill, model, prompt, memory, retrieval, policy, permission set, MCP server, or business integration. Any such change can create a new permissible path.

How Does AI Dawn Help Validate an Agent Route

AI Dawn can build path-level control into a specific business process:

  1. Audit the process, data, baseline, constraints, and acceptance criteria.
  2. Map the capability graph of skills, MCP servers, and integrations with business systems.
  3. Design narrow tool adapters, agent identities, policy checks, approvals, logging, and recovery.
  4. Run the MVP, testing, launch, team training, and change support.

A safe first step is to choose one process, its current baseline, data sources, constraints, and acceptance criteria. Then you can build a graph of short routes and test them on a data copy before enabling real effects.

Discuss the Project

Conclusion

Skill safety is not closed under composition: two or three permissible components can create a capability that none of them has individually. That is why the real unit of control is not a package in a catalog, but the trajectory from the data source to the terminal effect.

The practical sequence is: inventory capabilities, map short paths, preserve data classification through transformations, grant separate minimum permissions, place deterministic controls before the effect, and record the actual trajectory. A scanner remains a useful layer, but the production decision should rely on replay and runtime observation of your configuration.

Request an audit

Share your contact details and we will follow up.

← All articles

Comments (0)

Loading comments…

Leave a comment
No registration required

Book a strategy call
for agentic operations

Tell us which workflow you want to improve. We will map feasibility, risks, and the fastest MVP path.

By submitting, you agree to our privacy policy

Contacts

Global Operations

Serving U.S. clients remotely
with private cloud and on-prem options

Strategy calls by request

We respond after reviewing your workflow context.

lamooof@gmail.com

For partnership inquiries

Have a proposal?

Write to us in messengers

© 2025 AgentSunrise