The Tessl Registry now has security scores, powered by SnykLearn more
Logo
Back to podcasts

We Scanned 3,984 Skills — 1 in 7 Can Hack Your Machine

with Brian Vermeer

Transcript

Chapters

Trailer
[00:00:00]
AI DevCon
[00:01:17]
Introduction
[00:02:11]
Snyk's evolution from SCA to AI security
[00:03:32]
Can agents generate secure code?
[00:05:06]
Skills and secure coding guidance
[00:06:01]
Snyk agent scan and Tessl integration
[00:07:24]
MCP as the next supply chain problem
[00:07:56]
ToxicSkills threat taxonomy
[00:09:04]
How malicious skills exploit privileges
[00:10:27]
MCP server attack surface
[00:12:39]
The speed of AI adoption vs security
[00:13:51]
Scan results and critical vulnerabilities
[00:15:51]
False positives in natural language
[00:17:06]
How attackers create malicious skills
[00:18:26]
Trust and open source skill risks
[00:20:41]
Using Snyk agent scan directly
[00:21:29]
Snyk scans in the Tessl registry
[00:24:58]
Advice for skill creators
[00:26:41]
Protecting yourself as a skill user
[00:28:16]
Snyk Evo Agent Guard for Cursor
[00:29:44]
Runtime guardrails and policies
[00:33:21]
Wrap-up and where to learn more
[00:34:10]

In this episode

Most developers install skills without reading what's inside them. But that's exactly what attackers are counting on.


Simon Maple sits down with Brian Vermeer from Snyk at DevNexus to get into the security risk hiding inside the skills and MCPs running on your local machine. They scanned over 4,000 skills and found that 1 in 7 had at least one critical security vulnerability.


Here’s what you need to know:

  • Why prompting your agent to write secure code doesn't make it secure
  • How a trusted skill can update silently and start offloading your credentials
  • What prompt injection actually looks like inside a skill file
  • Why vibe coding makes the attack surface bigger, not smaller
  • How the Snyk agent scan catches what you'd never spot manually

Every skill on the Tessl registry now has a Snyk security scan attached. Check before you install.

13.4% of Published Skills Contain Critical Security Issues

Skills and MCP servers have become essential infrastructure for agentic development, but they also represent the next supply chain security challenge. A recent scan of nearly 4,000 published skills found that 13.4% contain at least one critical-level security issue. In a recent episode of the AI Native Dev podcast recorded at DevNexus in Atlanta, Simon Maple sat down with Brian Vermeer from Snyk to explore what this means for developers and how teams can protect themselves.

The conversation surfaced a familiar pattern: the same trust dynamics that created vulnerabilities in open-source dependencies are now playing out with skills and MCP servers, often with even less visibility into what is actually happening.

Skills as the Next Supply Chain Problem

The parallel to traditional dependency security is striking. Just as developers once pulled in NPM packages or Maven dependencies without fully vetting them, teams are now installing skills from GitHub repositories without examining what those skills actually do. The difference is that skills operate in natural language, making malicious intent easier to hide and harder to detect.

"You can see MCPs as the next supply chain problem," Brian explained. "You're adding features and functions to your agent so it can execute that. But what kind of stuff is there? You see the functions it has, but what kind of input or output does it have? What kind of flow comes through it?"

The threat taxonomy includes familiar categories: prompt injection, malicious code, credential detection, and unverifiable dependencies. But skills introduce new attack vectors specific to natural language processing. Hidden instructions can be encoded in base64, written in obscure languages that humans cannot read but models can interpret, or embedded using Unicode characters that are invisible to text editors but parseable by LLMs.

The scan results from Snyk's analysis of 3,984 skills revealed 534 containing critical issues. That rate seems likely to increase as attackers recognise how easy it is to create malicious skills and how rarely users actually read what they install.

Why Asking Nicely Does Not Produce Secure Code

A common assumption is that adding security instructions to prompts or skills will make agents generate secure code. The conversation challenged this directly. Even explicit instructions like "make sure this is super secure because my life depends on it" do not reliably prevent vulnerable output.

"If you only trust the skills, you still leave it to chance," Brian noted. "Most of these processes can be deterministic. The security scan. And we've been doing that for years. But if you ask the same question twice, they will come up with different answers."

The models themselves are trained on data that includes vulnerabilities. Stack Overflow answers, open-source projects, and example code all contain security issues. Models are getting better, but they remain general-purpose tools not specifically optimised for security. This suggests that skills providing security guidance can help improve outcomes but cannot replace deterministic scanning tools that verify the actual output.

This connects to broader patterns in AI agent reliability (https://claude.ai/blog/ai-coding-agent-reliability): agents need multiple layers of verification, not just good instructions. The combination of guidance through skills and verification through scanning tools appears more robust than either approach alone.

How Attackers Exploit Trust

The conversation outlined a typical attack pattern that exploits the trust users place in skills and MCP servers. First, establish legitimacy. Create a useful skill or MCP server that does what it claims, such as reading calendar items or managing tasks. Users install it, verify it works, and move on.

Then, update the skill. The new version includes a side effect, perhaps downloading a binary, exfiltrating credentials, or cascading to other skills the user did not intend to install. Because the user already trusted the original version, they are unlikely to review updates with the same scrutiny.

Obfuscation makes detection harder. Instructions can be hidden in parts of the Unicode spectrum that are invisible to humans but readable by models. Content can be base64 encoded or written in languages users do not understand. Attacks can be staged across multiple steps, with early versions disabling guardrails that would have blocked later malicious actions.

"Think of it like this: most of these skills run on your local machine, and they have execution power," Brian observed. "If you give Claude the power to execute bash scripts, I can basically vibe code my exploits now."

Defending Against Malicious Skills

For developers using skills, the practical defences mirror good practices from traditional dependency management. First, do not blindly install. Check security scan results before adding skills to your environment. The Tessl registry now displays Snyk scan results for every published skill, showing critical issues and their severity.

Second, pin versions. Skills that worked safely yesterday can become dangerous with an update. Pinning to specific versions prevents automatic inheritance of whatever changes skill authors push. This is the same lesson the industry learned with dependency management years ago.

Third, scan locally. The Snyk agent scan tool can audit skills and MCP servers installed on your local machine, surfacing potential issues in configurations that did not come through a registry. The tool examines common installation locations and provides explanations for why specific content was flagged, helping users make informed decisions rather than just presenting pass/fail results.

For skill creators, the guidance focuses on clarity. Be explicit about what your skill does and why. Test your own skills with scanning tools before publishing. If legitimate functionality gets flagged, there may be ways to express the same intent more clearly so that scanners can distinguish it from malicious patterns.

Enterprise Visibility and Control

The conversation touched on emerging tools for security teams managing agent usage across organisations. Products like Snyk's Evo provide visibility into which models and MCP servers are being used, enabling policies that block unapproved tools or require guardrails for specific use cases.

This matters because agents fundamentally operate through API calls. Traffic can be monitored, and policies can be enforced at runtime. Security teams can prevent calls to unapproved models, block specific MCP functions, or require additional verification for sensitive operations.

The implication for organisations is that agent security requires the same layered approach as traditional application security: scanning during development, policies during deployment, and monitoring during runtime. Teams that treat skills as just another form of code, subject to the same supply chain security practices they already apply to dependencies, will be better positioned than those who assume natural language content is inherently trustworthy.

The full conversation covers additional ground on specific threat categories, the mechanics of Unicode smuggling attacks, and the evolution of agent security tooling. Worth a listen for teams thinking about how to adopt agentic development without creating new attack surfaces.

Chapters

Trailer
[00:00:00]
AI DevCon
[00:01:17]
Introduction
[00:02:11]
Snyk's evolution from SCA to AI security
[00:03:32]
Can agents generate secure code?
[00:05:06]
Skills and secure coding guidance
[00:06:01]
Snyk agent scan and Tessl integration
[00:07:24]
MCP as the next supply chain problem
[00:07:56]
ToxicSkills threat taxonomy
[00:09:04]
How malicious skills exploit privileges
[00:10:27]
MCP server attack surface
[00:12:39]
The speed of AI adoption vs security
[00:13:51]
Scan results and critical vulnerabilities
[00:15:51]
False positives in natural language
[00:17:06]
How attackers create malicious skills
[00:18:26]
Trust and open source skill risks
[00:20:41]
Using Snyk agent scan directly
[00:21:29]
Snyk scans in the Tessl registry
[00:24:58]
Advice for skill creators
[00:26:41]
Protecting yourself as a skill user
[00:28:16]
Snyk Evo Agent Guard for Cursor
[00:29:44]
Runtime guardrails and policies
[00:33:21]
Wrap-up and where to learn more
[00:34:10]