The Open Worldwide Application Security Project (OWASP) has published a new Top 10 security list purpose-built for the modern AI era — this one targeting AI agent "skills," the pluggable add-ons that give large language model (LLM) agents new capabilities such as executing code, querying APIs, reading files, and interacting with enterprise systems. Alongside the risk list, OWASP debuted a Universal Skill Format intended to bring consistency, portability, and — critically — security to how these add-ons are packaged and distributed.
If your organization is deploying agentic AI — whether that's coding assistants, autonomous workflow agents, or MCP-connected tooling — this announcement is directly relevant to you. AI skills are rapidly becoming the new browser extension ecosystem: easy to install, rarely audited, over-privileged by default, and an increasingly attractive supply-chain target for threat actors. A single malicious or compromised skill can inherit every permission the host agent holds, which in many deployments means shell access, file system access, cloud credentials, and internal network reach.
This post breaks down what OWASP is flagging, why skills represent a meaningful new attack surface, and what your security team should do about it today — including detection engineering guidance for skill-abuse behaviors.
Technical Analysis
What Are AI "Skills" and Why Do They Matter?
AI skills (also called plugins, tools, or extensions depending on the platform) are modular capability packages installed into an AI agent runtime. They typically contain:
- Instruction content — natural-language instructions or prompts the agent loads into its context, effectively extending its system behavior
- Executable logic — scripts, code, or tool definitions the agent can invoke (shell commands, Python, API calls)
- Configuration and metadata — permissions declarations, endpoint definitions, and dependency manifests
The security problem is structural: skills execute with the full trust and permission set of the host agent, their instruction content is consumed by the model as authoritative context, and most ecosystems today have no standardized signing, review, or permission-scoping mechanism. That is precisely the gap OWASP's Universal Skill Format aims to close — defining a consistent, auditable packaging standard so security teams can inspect, validate, and govern skills before deployment.
The Risk Categories OWASP Is Flagging
While the exact list ordering will evolve, the risk classes OWASP highlights for AI skills map closely to what we're already seeing in incident response work involving agentic AI deployments:
- Malicious skill supply chain — trojanized skills published to public registries or marketplaces, typosquatted skill names, and compromised maintainer accounts pushing poisoned updates. This mirrors the npm/PyPI playbook that attackers have refined for years.
- Prompt injection via skill content — because skill instructions are ingested into the model's context, a crafted skill can override agent behavior, exfiltrate conversation data, or manipulate the agent into performing unauthorized actions. This is an indirect prompt injection vector with a persistent footprint.
- Excessive permissions and scope creep — skills requesting broader access than their function requires (full file system, network egress, credential stores), with no enforcement mechanism to constrain them.
- Credential and secret exposure — skills that read environment variables, cloud metadata endpoints, SSH keys, or token files accessible to the agent process.
- Insecure tool execution — skills that wrap shell execution or code interpreters, enabling arbitrary command execution if the skill or its inputs are attacker-controlled.
- Data exfiltration through tool calls — skills that transmit conversation content, files, or retrieved enterprise data to external endpoints under the guise of normal tool functionality.
- Unvalidated dependencies — skills pulling in third-party packages or remote content at runtime without integrity verification.
- Insufficient provenance and signing — no way to verify who authored a skill or whether it has been tampered with since publication.
Exploitation Status
There is no CVE associated with this announcement — it is a defensive framework publication, not a vulnerability disclosure. However, the underlying threat is neither theoretical nor future-tense. Security researchers have publicly demonstrated malicious MCP servers and agent plugins performing credential theft and silent data exfiltration, and prompt injection against tool-using agents is a documented, reproducible technique. Treat the skill ecosystem the way you treated browser extensions circa 2015: an unmanaged, high-privilege installation surface sitting inside your perimeter by invitation.
Detection & Response
Detecting malicious AI skill behavior requires focusing on the host agent process and its children, skill installation artifacts, and anomalous egress. The detections below target behaviors consistent with the OWASP risk categories: skill-driven command execution, credential file access, and suspicious skill content.
Sigma Rules
---
title: AI Agent Process Spawning Shell or Script Interpreter
id: 3f8a1c24-7b2d-4e91-a5c6-9d0e2f4a6b8c
status: experimental
description: Detects AI agent CLI runtimes (node, python-based agent tools) spawning command shells or script interpreters, consistent with a malicious or compromised AI skill executing system commands.
references:
- https://www.darkreading.com/application-security/owasp-flags-top-ai-skill-risks-security-blueprint
- https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/01/15
tags:
- attack.execution
- attack.t1059
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\node.exe'
- '\python.exe'
- '\python3.exe'
- '\uv.exe'
- '\deno.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\curl.exe'
- '\certutil.exe'
condition: selection_parent and selection_child
falsepositives:
- Legitimate AI coding assistants executing build or test commands in development workflows
- Approved agentic automation invoking system tooling
level: high
---
title: Skill or Plugin Configuration Accessed by Non-Agent Process
id: 8c2e5f17-4a6b-4d38-b9c1-2e7f3a5d8b0e
status: experimental
description: Detects writes to AI agent skill/plugin directories by processes other than the agent runtime or package manager, indicating potential skill tampering or unauthorized skill installation.
references:
- https://www.darkreading.com/application-security/owasp-flags-top-ai-skill-risks-security-blueprint
- https://attack.mitre.org/techniques/T1565/001/
author: Security Arsenal
date: 2026/01/15
tags:
- attack.defense_evasion
- attack.t1565.001
logsource:
category: file_event
product: windows
detection:
selection_path:
TargetFilename|contains:
- '\.claude\skills\'
- '\.config\claude\'
- '\.cursor\'
- '\mcp\servers\'
- '\.continue\'
- '\.windsurf\'
filter_legit:
Image|endswith:
- '\node.exe'
- '\python.exe'
- '\npm.exe'
- '\pip.exe'
- '\claude.exe'
condition: selection_path and not filter_legit
falsepositives:
- Administrators manually editing skill configuration files
- Endpoint management software deploying approved skill configurations
level: medium
---
title: Agent Process Reading Credential or Key Material (Linux)
id: 5d1a9b63-2f8c-4e47-a3d5-6b9c0e2f4a7d
status: experimental
description: Detects AI agent runtimes on Linux accessing SSH keys, cloud credential files, or token stores — a hallmark of malicious skill behavior and agent compromise.
references:
- https://www.darkreading.com/application-security/owasp-flags-top-ai-skill-risks-security-blueprint
- https://attack.mitre.org/techniques/T1552/
author: Security Arsenal
date: 2026/01/15
tags:
- attack.credential_access
- attack.t1552.001
- attack.t1552.004
logsource:
category: process_creation
product: linux
detection:
selection_parent:
ParentImage|endswith:
- '/node'
- '/python'
- '/python3'
- '/deno'
- '/uv'
selection_cmd:
CommandLine|contains:
- '/.ssh/id_'
- '/.aws/credentials'
- '/.azure/'
- '/.config/gcloud/'
- '/.kube/config'
- '169.254.169.254'
- '/etc/shadow'
condition: selection_parent and selection_cmd
falsepositives:
- Agent workflows explicitly designed for infrastructure automation with approved credential access
level: high
KQL Hunt Query (Microsoft Sentinel / Defender)
This query hunts across process and network telemetry for AI agent runtimes exhibiting skill-abuse behaviors: suspicious child processes, credential-path references, download-cradle patterns, and unexpected egress.
let AgentRuntimes = dynamic(["node.exe", "python.exe", "python3.exe", "deno.exe", "uv.exe", "claude.exe", "claude", "node", "python3"]);
let SuspiciousPatterns = dynamic(["curl", "wget", "iex", "Invoke-Expression", "base64 -d", "certutil", "id_rsa", ".aws/credentials", "169.254.169.254", ".ssh/", "nc ", "ncat", "bash -i"]);
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName has_any (AgentRuntimes) or FileName has_any (AgentRuntimes)
| extend CmdLine = ProcessCommandLine
| where CmdLine has_any (SuspiciousPatterns)
or (InitiatingProcessFileName has_any (AgentRuntimes) and FileName in~ ("cmd.exe", "powershell.exe", "pwsh.exe", "curl.exe", "bash", "sh"))
| project TimeGenerated, DeviceName, AccountName, InitiatingProcessFileName, InitiatingProcessCommandLine, FileName, CmdLine, ProcessId, InitiatingProcessId
| order by TimeGenerated desc;
// Correlate with unexpected egress from agent processes
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName has_any (AgentRuntimes)
| where RemoteIPType == "Public" and RemotePort in (443, 80, 8080, 4444, 1337)
| summarize Connections = count(), RemoteIPs = make_set(RemoteUrl, 20) by DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, bin(TimeGenerated, 1h)
| where Connections > 50
| order by Connections desc;
Velociraptor VQL Hunt
This artifact inventories AI skill/plugin directories across endpoints and flags skill files containing high-risk content patterns (download cradles, encoded payloads, credential paths, hardcoded endpoints) for analyst review.
-- Hunt: Inventory AI skill files and flag suspicious content patterns
LET skill_dirs = SELECT FullPath
FROM glob(globs=['C:/Users/*/.claude/skills/**/*', 'C:/Users/*/.cursor/**/*', '/home/*/.claude/skills/**/*', '/home/*/.config/claude/**/*', '/root/.claude/skills/**/*'])
WHERE NOT IsDir
LET flagged = SELECT FullPath,
read_file(filename=FullPath, length=51200) AS Content
FROM skill_dirs
WHERE Content =~ '(?i)(curl\s+.*\||wget\s+.*\||Invoke-Expression|iex\s*\(|base64\s+(-d|--decode)|FromBase64String|id_rsa|aws_secret_access_key|169\.254\.169\.254|nc\s+-|bash\s+-i|/etc/shadow)'
SELECT FullPath,
timestamp(epoch=Mtime) AS ModifiedTime
FROM foreach(row=skill_dirs, query={
SELECT FullPath, Mtime FROM stat(filename=FullPath)
})
UNION ALL
SELECT FullPath, NULL AS ModifiedTime FROM flagged
Note: tune the glob paths to the agent platforms actually deployed in your environment — the skill directory conventions differ per vendor and will evolve as the Universal Skill Format gains adoption.
Hardening and Audit Script
Use this Bash script to audit Linux/macOS developer workstations and servers for installed AI skills, world-writable skill directories, and skills containing high-risk patterns. Run it via your EDR's live response or configuration management tooling.
#!/bin/bash
# AI Skill Security Audit - Security Arsenal
# Inventory skill directories, check permissions, scan for high-risk content
SKILL_DIRS=("$HOME/.claude/skills" "$HOME/.config/claude" "$HOME/.cursor" "$HOME/.continue" "/opt/mcp/servers")
REPORT="ai_skill_audit_$(hostname)_$(date +%Y%m%d).txt"
echo "=== AI Skill Security Audit: $(hostname) ===" | tee "$REPORT"
echo "Date: $(date)" | tee -a "$REPORT"
for dir in "${SKILL_DIRS[@]}"; do
if [ -d "$dir" ]; then
echo "[+] Found skill directory: $dir" | tee -a "$REPORT"
# Flag world-writable or group-writable skill files
find "$dir" -type f -perm /022 -exec ls -la {} \; | tee -a "$REPORT"
# Scan for high-risk content patterns in skill files
echo " Scanning for high-risk patterns..." | tee -a "$REPORT"
grep -rIlE '(curl .+\||wget .+\||base64 -d|id_rsa|aws_secret|169\.254\.169\.254|nc -|bash -i|eval\()' "$dir" 2>/dev/null | tee -a "$REPORT"
# Fix overly permissive files
find "$dir" -type f -perm /022 -exec chmod 600 {} \;
find "$dir" -type d -perm /022 -exec chmod 700 {} \;
fi
done
# Check for agent processes with unexpected outbound connections
echo "[+] Agent processes with active network connections:" | tee -a "$REPORT"
ss -tunp 2>/dev/null | grep -Ei '(node|python|deno)' | grep -v '127.0.0.1' | tee -a "$REPORT"
echo "[+] Audit complete. Review $REPORT for flagged items." | tee -a "$REPORT"
Remediation
Because this is a framework announcement rather than a patchable vulnerability, remediation is architectural and procedural. Prioritize the following:
- Adopt the OWASP AI Skills Top 10 as your internal standard. Map every deployed agent skill against the listed risk categories. Skills you cannot account for should be removed.
- Establish a skill allowlist. Prohibit ad-hoc installation of skills from public registries. Route all skill adoption through security review, the same way mature organizations govern browser extensions and IDE plugins.
- Review and pin the Universal Skill Format. As OWASP's format matures, require skills to conform to it — a standardized manifest gives you a single inspection point for permissions, dependencies, and provenance.
- Enforce least privilege on agent runtimes. Run agents in sandboxed environments (containers, dedicated service accounts, restricted shells) with no access to SSH keys, cloud instance metadata, or credential files unless explicitly required. Network-segment agent workloads and apply egress filtering — a skill that exfiltrates data needs a route out.
- Scan skill content before deployment. Treat skill instruction files as code: static-analysis them for download cradles, encoded payloads, credential-path references, and hardcoded external endpoints. The audit script above provides a starting point.
- Version-pin and verify integrity. Pin skills to reviewed versions, verify hashes where available, and monitor for unexpected updates to installed skills.
- Instrument detection coverage. Deploy the Sigma, KQL, and VQL content above (tuned to your agent platforms) and ensure agent process telemetry — process creation with command line, network connections, and file access — is flowing to your SIEM.
- Add skills to your threat model and IR playbooks. Define now what "malicious skill installed on a developer workstation" looks like as an incident: containment steps, credential rotation scope, and forensic acquisition of the agent's context and tool-call logs.
The trajectory here is predictable: every extensibility ecosystem eventually gets attacked, and the defenders who built governance before the first major supply-chain incident fared far better than those who reacted after. OWASP has handed you the blueprint. Use it.
Related Resources
Security Arsenal Healthcare Cybersecurity AlertMonitor Platform Book a SOC Assessment healthcare Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.