SkillSpector
SkillSpector
Active

SkillSpector

SkillSpector is NVIDIA's open-source security scanner for AI agent skills. It combines 64 static detection patterns, AST and taint analysis, OSV dependency checks, optional LLM review and SARIF output. This guide covers coverage, blind spots, CI policy, privacy, triage and alternatives.

108

Views

0

Likes

Jun 2026

Added

github.com

Website

Tags

agent securityskill scanningai detectionopen source

Product Preview

A quick visual look at SkillSpector before you visit the official site.

Published 6/12/2026
SkillSpector screenshot

Editorial Review

About SkillSpector

SkillSpector is an Apache-2.0 security scanner from NVIDIA for AI agent skills: instruction packages that may contain Markdown, scripts, dependencies, tool definitions and activation rules. It accepts a local directory, individual file, zip archive, Git repository or URL and produces terminal, JSON, Markdown or SARIF findings with a 0–100 risk score.

Its value is the threat model. A skill is not merely documentation. Once an agent follows it, instructions can cause file access, shell execution, credential use, network transmission or persistent configuration changes. SkillSpector checks both conventional software risks and agent-specific problems such as prompt injection, excessive agency, memory poisoning, trigger abuse and MCP tool-description poisoning. A clean report is evidence from one pre-install analysis layer—not a guarantee that runtime behavior is safe.

SkillSpector security scanner repository screenshot
SkillSpector can make skill review repeatable and CI-visible. Its report must be combined with provenance, sandboxing, permissions and human verification.

Where SkillSpector fits in the trust pipeline

 source identity + commit pin
             |
             v
 unpack in isolated workspace
             |
     .-------+--------.
     v                v
 static rules     dependency / OSV
 AST + taint      signatures + metadata
     '-------+--------'
             v
 optional LLM semantic review
             |
       human disposition
 accept / fix / suppress-with-reason / reject
             |
 sandbox + least privilege + runtime monitoring

This order matters. Scanning an unpinned URL today does not prove that tomorrow’s download is identical. Running an LLM over hostile instructions without isolating its credentials creates another exposure. Uploading a SARIF file without a blocking policy creates visibility but no control. Treat the scanner as one stage in a reproducible admission process.

What the two-stage analyzer does

StageMechanismStrengthExpected weakness
Static patternsRegex and rule matching across skill filesFast, deterministic and explainableBenign examples can match; novel wording can evade
Behavioral ASTDetects Python execution primitives and dangerous call chainsFinds code behavior beyond keywordsDoes not execute code; language and indirection coverage is finite
Taint trackingLooks for flows from inputs/secrets/files to execution or network sinksConnects source and sink into a meaningful pathDynamic dispatch and complex frameworks can defeat static flow
OSV lookupQueries OSV.dev for declared dependency vulnerabilitiesCurrent vulnerability intelligence when onlineOffline mode uses a smaller fallback; undeclared/vendored code may be missed
YARA signaturesMatches known malware, webshell, miner and exploit patternsUseful for known familiesUnknown, packed or modified payloads may evade
Optional LLM reviewAssesses intent and context, explains findingsCan reduce obvious static false positivesProbabilistic, provider-dependent and exposed to adversarial content

The project describes static analysis as high-recall with moderate precision and says optional semantic review improves precision. Do not copy a headline precision figure into policy without reproducing it on your own corpus. A security team cares about per-category false negatives, not only one aggregate number.

The 16 risk categories in operational terms

Risk groupExamples coveredWhat a reviewer should verify
Instruction controlPrompt injection, hidden directives, system-prompt leakageAre instructions visible, scoped and subordinate to host policy?
Data accessEnvironment harvesting, filesystem enumeration, context exfiltrationWhich exact data classes can flow to which domains?
AuthorityPrivilege escalation, excessive agency, tool misuseDoes the skill request only the minimum reversible permissions?
PersistenceMemory poisoning, self-modification, startup or cron persistenceCan the skill modify future sessions or its own enforcement?
Software supply chainUnpinned packages, remote scripts, CVEs, typosquatting, obfuscationAre hashes, commits and dependency provenance reproducible?
MCP boundaryWildcard permissions, undeclared capabilities, tool poisoningDoes declared metadata match code and runtime traffic?
Code behaviorexec/eval, subprocess, dynamic imports, tainted executionIs dangerous behavior essential, constrained and safely parameterized?
Output and triggersUnsanitized output, broad activation, shadow commandsCan ordinary text unexpectedly activate or cross a trust boundary?

SkillSpector currently documents 64 patterns across these 16 categories. The number is useful for versioning coverage, not as a security score by itself. Ten variants of a known regex do not necessarily protect against one new attack chain, while a single high-quality taint rule may prevent a critical leak.

Understanding the risk score

The documented model adds 50 points for a critical finding, 25 for high, 10 for medium and 5 for low, applies a 1.3× multiplier when executable scripts are present, and caps the result at 100. Published bands label 0–20 low, 21–50 medium, 51–80 high and 81–100 critical.

Score/bandDefault recommendationWhat it does not mean
0–20 / LowContinue manual review and sandbox testNot “safe”; blind spots may contain unobserved behavior
21–50 / MediumRequire owner disposition and remediationNot automatically malicious; legitimate network or shell use may score
51–80 / HighBlock installation unless security grants an exceptionScore alone does not establish intent
81–100 / CriticalReject and investigate source/provenanceMultiple findings may describe one root cause; deduplicate during triage

A score compresses heterogeneous evidence. Preserve rule IDs, file locations, snippets, confidence, analyzer version and source commit. Two skills with a score of 50 can have radically different risks: one critical code-execution path versus ten low-severity hygiene findings.

Static-only versus LLM-assisted scanning

ModeUse whenData boundaryPolicy implication
--no-llmFast CI, untrusted inputs, air-gapped review or deterministic baselinesNo semantic payload sent to a model providerExpect more false positives and missed intent
Managed OpenAI/Anthropic/NVIDIA endpointContextual triage is worth external processingSkill content may leave the environmentReview provider terms, retention, region and credentials
Local OpenAI-compatible endpointSensitive skills or reproducible internal evaluationCan remain local if networking is controlledModel quality and prompt-injection robustness become your responsibility

Never give the scanner’s semantic model more authority than it needs. The model should analyze text, not possess production secrets or installation permissions. Treat any skill content as adversarial input and log the exact provider/model because semantic dispositions can change between versions.

Known blind spots

NVIDIA explicitly lists important limitations: non-English attacks may be missed; text hidden in images is not analyzed; compiled, encrypted or binary code is outside static visibility; and runtime behavior is not executed. OSV coverage is reduced when the network is unavailable. Static analysis may also struggle with generated code, reflection, second-stage downloads, environment-conditioned behavior and abuse that appears only after a remote server changes its response.

Blind spotCompensating control
Image or document instructionsExtract OCR/metadata and review media in a separate sandbox
Binary or encrypted artifactReject opaque payloads or require reproducible source and malware sandboxing
Runtime-only behaviorExecute in an instrumented container with denied-by-default network/filesystem
Non-English or obfuscated promptUse language-aware review, Unicode normalization and adversarial test cases
Remote dependency changesPin commit/hash, mirror dependencies and verify signatures/SBOM
Scanner evasion or defectUse defense in depth, independent review and scanner regression tests

A CI admission policy that teams can enforce

  1. Resolve immutable input. Record repository, commit SHA, archive hash, author and license before scanning.
  2. Unpack without execution. Disable hooks, templates and package installation while inventorying every file.
  3. Run static-only first. Save JSON and SARIF with the SkillSpector version and whether OSV was reachable.
  4. Apply explicit gates. Block any unsuppressed critical/high result, credential-to-network taint, hidden instruction or opaque executable.
  5. Perform semantic review separately. Send only approved content to an isolated provider and never allow the model to install the skill.
  6. Require human disposition. Every suppression needs an owner, rationale, scope and expiry date.
  7. Test runtime boundaries. Start with no secrets, read-only fixtures, a domain allowlist and a disposable account.
  8. Re-scan updates. Trigger on source changes, dependency lock changes, rulepack releases and newly disclosed CVEs.
FindingSuggested gateException evidence
Critical/high taint or execution chainHard blockSecurity review plus code remediation; avoid permanent suppression
External network destinationBlock unless allowlistedBusiness purpose, data classification, domain and payload proof
Unpinned dependencyBlock releaseLockfile/hash and controlled update process
Broad trigger or wildcard permissionRequire narrowingDemonstrated need and runtime approval control
Low-severity hygiene issueWarn with deadlineOwner and remediation ticket

How to evaluate detection quality

Create a labeled corpus that resembles the skills your organization installs. Include clean skills that legitimately use subprocesses or network APIs, intentionally vulnerable fixtures for every relevant rule family, multilingual instructions, encoded text, renamed tools and chained behaviors. Split the corpus so tuning examples do not become the only test set.

MetricQuestion answeredWhy it matters
Recall by severity/categoryHow many known dangerous cases were found?A high overall rate can hide zero coverage for credential exfiltration
PrecisionHow many alerts were actionable?Low precision trains developers to bypass the gate
Time to dispositionHow long does human triage take?Measures actual operational cost
Incremental scan timeCan the check run on every change?Slow gates migrate to infrequent audits
Semantic stabilityDo repeated/model-version runs agree?Exposes nondeterministic policy outcomes
Escape rateWhat risky behavior appeared at runtime after passing?Tests the entire admission system, not just the scanner

SARIF and reporting

SARIF output can be uploaded to GitHub code scanning so findings appear at source locations and participate in the repository’s normal security workflow. JSON is better for policy engines and longitudinal metrics; Markdown helps a human review packet; terminal output is convenient locally. Confirm exit-code behavior in your pinned version and implement the gate explicitly rather than assuming that creating a report fails a build.

Reports can themselves contain sensitive snippets, internal paths and suspicious instructions. Limit artifact retention and access. Do not publish a full finding containing a token or exploit payload in a public pull request.

Alternatives and complementary controls

OptionBest useRelationship to SkillSpector
Cisco AI Defense skill-scannerAnother agent-skill-focused multi-engine scannerCompare coverage and false positives; independent engines can diversify detection
Semgrep/CodeQLDeep language-specific static analysis and custom organization rulesComplement agent-instruction and MCP-specific checks
OSV-Scanner/DependabotDependency vulnerability and update workflowsBroader dependency operations than one embedded lookup
YARA/antimalware sandboxKnown malware and dynamic behaviorUseful for payloads outside Markdown-oriented analysis
Manual allowlist + signed catalogHigh-control environments with few approved skillsReduces supply-chain variability; still scan each signed release
Runtime sandbox/policy engineEnforcing file, network, secret and approval boundariesEssential compensation because pre-install scanning cannot observe everything

FAQ

Does a low score mean a skill is safe?

No. It means the pinned scanner version did not accumulate many recognized findings. Blind spots, runtime behavior and supply-chain substitution remain possible.

Does SkillSpector execute the skill?

No. Its documented limitation is static analysis rather than dynamic execution. Use a separate instrumented sandbox for runtime testing.

Can it scan a remote Git repository?

Yes, along with URLs, zip archives, directories and individual files. For reproducibility, scan an immutable commit or hash rather than a mutable branch URL.

Is LLM analysis required?

No. --no-llm runs static-only. Semantic analysis is optional and can use managed providers or a local OpenAI-compatible endpoint.

What happens without OSV network access?

The scanner falls back to a small built-in list, so dependency-vulnerability coverage is less current and comprehensive. Record that degraded state in the report.

Who should own the final decision?

A designated security or platform reviewer, with input from the skill’s functional owner. The scanner provides findings; it should not grant installation authority.

Sources and verification

Last reviewed July 26, 2026. Pattern counts, providers, default models and CLI behavior may change. Pin the scanner version and verify the current repository before adopting a gate.

Ready to try SkillSpector?

Visit the official website to get started

Visit SkillSpector

Quick Info

Added
6/12/2026
Published
6/12/2026
Updated
7/26/2026

Share This Tool

Have an AI tool to share?

Submit it to AI Dreamhub

Get your product in front of people actively exploring AI tools.

Submit Your Tool

Related Tools

AI Detect Lab

AI Detect Lab

AI Detect Lab is a free AI-generated image detection tool for checking whether an image may come from systems such as Midjourney, Stable Diffusion, DALL-E, Flux, or other AI image generators. It is useful for moderation, verification, and editorial review, but results should be treated as signals, not final proof.

AI Detect LabAI image detectorAI generated image detector
2600
Credence

Credence

Credence checks any MCP server or AI tool against a trust registry to score security and behavioral risk.

SecurityTrustProvenance
2350
Omogle

Omogle

Omogle is a browser-based entertainment tool that estimates a PSL-style facial score from an uploaded photo; its output is subjective, non-clinical, and should be treated cautiously rather than as an objective measure of attractiveness.

face analysisPSL scorebrowser AI
2260
Claw Patrol

Claw Patrol

Claw Patrol is an open-source security firewall for AI agents that keeps credentials out of the agent context and gates risky actions with explicit policy controls.

agent securitysecurity proxyai agents
1660