Skip to content
skillsdirectory

Security & vetting

What we check, and how the Shield is earned

The Shield is granted only to popular, high-quality skills that pass a deep security scan. Unlike a star count, the scan reads the actual code and dependencies. This page is the full, open methodology — every Shielded skill has been checked against everything below, and is re-checked on a schedule.

Skills scanned
40
Shield-vetted
29
Advisories tracked
57
Last scan
2026-05-26

How the scan works

  1. 01

    Fetch the real code

    We pull the skill's marker file, manifests, and source from its GitHub repository — not just the README.

  2. 02

    Static analysis

    Every file is scanned for the danger patterns listed below, each located to a file and line.

  3. 03

    Dependency check

    Manifests (package.json, requirements.txt, …) are parsed and every dependency is matched against the OSV vulnerability database (CVEs + GitHub Security Advisories).

  4. 04

    AI safety review

    A model reviews the code and the static findings for concerns patterns miss — exfiltration, deceptive behaviour, malicious intent.

  5. 05

    Verdict

    Findings produce a verdict. The Shield is granted only on a clean pass.

Verdict policy

  • Fail — any high- or critical-severity finding. The skill cannot earn the Shield.
  • Warn — a medium-severity finding (e.g. a dependency advisory). The Shield is withheld and the finding is surfaced.
  • Pass — only low/informational findings, or none. Combined with popularity, this earns the Shield.

Everything we check against

The exact danger classes the scan looks for, most severe first.

  • Unpinned remote code execution

    criticalCode scan

    Fetching and running code from the internet at install or runtime (curl | sh, Invoke-Expression).

  • Dynamic code evaluation

    highCode scan

    Use of eval, exec, or Function() to execute strings as code.

  • Destructive filesystem operations

    highCode scan

    Recursive or broad deletes (rm -rf, shutil.rmtree, recursive fs.rm).

  • Hardcoded secrets

    highCode scan

    API keys, tokens, or passwords committed into the source.

  • Prompt injection

    highCode scan

    Instructions that try to override the agent or exfiltrate the prompt, context, or secrets.

  • Deceptive or malicious behaviour

    highAI review

    Code or instructions designed to deceive or harm the user, flagged by the AI safety review.

  • Data exfiltration

    mediumAI review

    Reading local files or environment variables and sending them to a remote host.

  • Shell / process execution

    mediumCode scan

    Spawning shells or child processes (child_process, os.system, subprocess).

  • Obfuscated code

    mediumCode scan

    Large base64/hex blobs or packed code that hides what the skill does.

  • Credential prompts

    mediumCode scan

    Asking the user or agent to paste secrets, especially alongside outbound requests.

  • Known dependency vulnerabilities

    mediumDependency · OSV

    A dependency with a published CVE / GitHub advisory, matched against the OSV database.

Known vulnerabilities we've flagged

Advisories the scanner has matched to indexed skills via their dependencies, newest first.

AdvisoryPackageSeveritySkills
GHSA-9crc-q9x8-hgqq vitest · npmmoderate4
GHSA-xrxf-jgv3-qmrm @openai/codex · npmmoderate2
GHSA-w5fx-fh39-j5rw @openai/codex · npmmoderate2
GHSA-m95q-7qp3-xv42 zod · npmmoderate4
GHSA-x6fg-f45m-jf5q semver · npmmoderate2
GHSA-c2qf-rxjj-qqgw semver · npmmoderate2
MAL-2025-6023 eslint-plugin-prettier · npmmoderate2
GHSA-f29h-pxvx-f335 eslint-plugin-prettier · npmmoderate2
MAL-2025-6022 eslint-config-prettier · npmmoderate2
GHSA-f29h-pxvx-f335 eslint-config-prettier · npmmoderate2
GHSA-67mh-4wv8-2f99 esbuild · npmmoderate2
GHSA-hwj9-h5mp-3pm3 postcss · npmmoderate1
GHSA-7fh5-64p2-3v2j postcss · npmmoderate1
GHSA-566m-qj78-rww5 postcss · npmmoderate1
GHSA-f9xv-q969-pqx4 yaml · npmmoderate2
GHSA-48c2-rrv3-qjmp yaml · npmmoderate2
GHSA-qg8p-v9q4-gh34 shell-quote · npmmoderate1
GHSA-g4rg-993r-mgx7 shell-quote · npmmoderate1
GHSA-mvjj-gqq2-p4hw react-dom · npmmoderate2
GHSA-hg79-j56m-fxgv react · npmmoderate2
GHSA-g53w-52xc-2j85 react · npmmoderate2
GHSA-wc9v-mj63-m9g5 pg · npmmoderate1
GHSA-2w6w-674q-4c4q handlebars · npmmoderate1
GHSA-2qvq-rjwj-gvw9 handlebars · npmmoderate1
GHSA-2cf5-4w76-r9qv handlebars · npmmoderate1
GHSA-5j98-mcp5-4vw2 glob · npmmoderate1
GHSA-jj78-5fmv-mv28 express · npmmoderate1
GHSA-gpvr-g6gh-9mc2 express · npmmoderate1
GHSA-cm5g-3pgc-8rg4 express · npmmoderate1
GHSA-8hgg-xxm5-3873 dompurify · npmmoderate1
GHSA-63q7-h895-m982 dompurify · npmmoderate1
GHSA-39q2-94rc-95cp dompurify · npmmoderate1
GHSA-8jhw-6pjj-8723 better-auth · npmmoderate1
GHSA-569q-mpph-wgww better-auth · npmmoderate1
GHSA-36rg-gfq2-3h56 better-auth · npmmoderate1
GHSA-w48q-cv73-mx4w @modelcontextprotocol/sdk · npmmoderate2
GHSA-8r9q-7v3j-jr4g @modelcontextprotocol/sdk · npmmoderate2
GHSA-345p-7cg4-v4c7 @modelcontextprotocol/sdk · npmmoderate2
GHSA-c2gp-86p4-5935 puppeteer · npmmoderate1
GHSA-gp95-ppv5-3jc5 sharp · npmmoderate1
GHSA-54xq-cgqr-rpm3 sharp · npmmoderate1
MAL-2026-2853 react-hook-form · npmmoderate1
GHSA-8f24-v5vv-gm5j next-intl · npmmoderate1
GHSA-4c35-wcg5-mm9h next-intl · npmmoderate1
GHSA-f9wg-5f46-cjmw next-auth · npmmoderate1
GHSA-7r7x-4c4q-c4qf next-auth · npmmoderate1
GHSA-5jpx-9hw9-2fx4 next-auth · npmmoderate1
GHSA-267c-6grr-h53f next · npmmoderate1
GHSA-25mp-g6fv-mqxx next · npmmoderate1
GHSA-223j-4rm8-mrmf next · npmmoderate1

Quality (maintenance, documentation, adoption) is scored separately — see the Skill Score methodology.