Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Snyk Agent Scan Compliance

v1.0.0

Compliance expert for snyk-agent-scan — the agent skill file scanner — NOT for other Snyk CLI tools (snyk test, snyk code SAST, snyk iac, snyk container). Fi...

0· 93·0 current·0 all-time
bySamuel Berthe@samber

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for samber/snyk-agent-scan-compliance.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Snyk Agent Scan Compliance" (samber/snyk-agent-scan-compliance) from ClawHub.
Skill page: https://clawhub.ai/samber/snyk-agent-scan-compliance
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install snyk-agent-scan-compliance

ClawHub CLI

Package manager switcher

npx clawhub@latest install snyk-agent-scan-compliance
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
high confidence
Purpose & Capability
The skill's stated purpose (helping authors remediate snyk-agent-scan alerts) aligns with the install of the snyk-agent-scan tool (uv package). Requiring the snyk-agent-scan binary is coherent. However, the SKILL.md explicitly shows running the scanner with SNYK_TOKEN=<token> (and recommends storing it as a CI secret), yet the skill metadata lists no required environment variables or primary credential. That omission is inconsistent and unexplained.
!
Instruction Scope
The SKILL.md instructs running snyk-agent-scan (examples: `SNYK_TOKEN=<token> snyk-agent-scan --skills ...`) and tells users to store SNYK_TOKEN as a CI secret. Because there are no code files, the prose is the runtime surface — and it explicitly requires a secret but the manifest doesn't declare it. Otherwise the instructions stay within the stated domain (rewriting skill bodies to avoid W001/W011/W012), and they do not instruct reading unrelated local files or exfiltrating arbitrary data.
Install Mechanism
Install uses a uv package entry for snyk-agent-scan (kind: uv, package: snyk-agent-scan) which is proportionate to the tool's purpose. UV installs are a network fetch of a package; that's expected for a CLI helper. No arbitrary direct-download or extract-from-untrusted-URL patterns are present in the install spec.
!
Credentials
The SKILL.md clearly requires a SNYK_TOKEN to run the scanner and gives examples using it, but the skill's declared requirements list no environment variables or primary credential. A scanner token is a sensitive secret; the skill should declare it (primaryEnv or requires.env) and justify scope. As written, there is a mismatch between declared and actual secret needs.
Persistence & Privilege
The skill does not request always:true and does not ask to modify other skills or system settings. Allowed-tools are broad but consistent with an authoring/compliance helper. There is no evidence the skill requests permanent elevated presence.
What to consider before installing
This skill appears to do what it says (help authors fix snyk-agent-scan alerts) and installs the snyk-agent-scan CLI, but there is an important inconsistency: the runtime examples require a SNYK_TOKEN secret yet the skill metadata declares no required env vars or primary credential. Before installing, confirm you trust the source of the snyk-agent-scan uv package and ask the publisher to (a) declare the SNYK_TOKEN in the manifest so you can review its scope, or (b) update docs to explain the token's required permissions and how it will be used. Treat the SNYK_TOKEN as sensitive — only provide it via CI secrets or a limited-scope token in a sandboxed environment. Finally, because this is an instruction-only skill (no code files), the SKILL.md is the full runtime surface: review the prose for any additional commands you would not want executed by an autonomous agent and test the skill in an isolated environment first.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🔍 Clawdis

Install

uv
Bins: snyk-agent-scan
uv tool install snyk-agent-scan
latestvk972atjazfm1bysa6racre3m5h84jsdv
93downloads
0stars
1versions
Updated 2w ago
v1.0.0
MIT-0

Persona: You are a skill-authoring compliance expert. You fix snyk-agent-scan alerts by restructuring content — never by suppressing or deleting useful information.

Thinking mode: Use ultrathink for multi-alert remediation where fixes for one alert type can surface or suppress another. Deep reasoning reduces rework.

snyk-agent-scan Compliance

The snyk-agent-scan tool analyzes skill bodies for three categories of unsafe patterns: third-party content exposure (W011), malicious external URLs (W012), and prompt injection via MCP tool calls (W001). All three are fixable through content restructuring without losing any information.

Reference Files

FileWhen to read
references/w001-patterns.mdFixing W001 alerts — MCP tool name patterns
references/w011-patterns.mdFixing W011 alerts — imperative URL and external content patterns
references/w012-patterns.mdFixing W012 alerts — version pinning and frontmatter offloading

Quick Reference

AlertSeverityRoot CausePrimary Fix
W011HighSkill body instructs agent to fetch/interpret external contentReplace imperatives with passive availability hints
W012HighSkill body references external URLs fetched and executed at runtimeMove to frontmatter install block; pin versions
W001HighSkill body names MCP tool functions explicitlyUse generic formulations instead

Running the Scanner

# Scan a single skill
SNYK_TOKEN=<token> snyk-agent-scan --skills skills/<name>/

# Scan all skills
SNYK_TOKEN=<token> snyk-agent-scan --skills ./skills

The scanner requires a valid SNYK_TOKEN. In CI, store it as a secret. If snyk-agent-scan is not installed, use uvx snyk-agent-scan@latest as a drop-in replacement without installing. See detailed patterns for fixes per alert type.

W011 — Third-Party Content Exposure

W011 fires when the skill body uses imperative verbs directing the agent to fetch, check, or evaluate external content and then act on it. The scanner treats the agent as the grammatical subject performing an external action.

Rules:

  • Replace Check <url> and Fetch <url> with passive hints: The release notes at <url> may be useful.
  • Remove "always" from any instruction involving external data: Always reference the changelogThe changelog documents breaking changes.
  • Keep tool invocations (gh repo view, govulncheck) in code blocks, not in prose checklists that imply the agent must run them before acting.
  • Decouple tool execution from decisions: running a tool is fine; using its remote-sourced output as the sole trigger for a refactor is not.

See W011 pattern catalog for 12+ before/after examples.

W012 — Potentially Malicious External URL

W012 fires when the body references external content fetched and executed at runtime: package installs with @latest, pipe-to-shell patterns, or GitHub Actions with wrong/non-existent major versions.

Rules:

  • Move go install pkg@latest and similar commands from prose into the frontmatter metadata.openclaw.install block — the scanner does not flag frontmatter.
  • Pin GitHub Actions to the correct current major version (@v4, not @v6).
  • Never use pipe-to-shell patterns (curl ... | sh) in skill bodies.

See W012 pattern catalog for 8+ before/after examples.

W001 — Prompt Injection via MCP Tool Calls

W001 fires when the skill body explicitly names MCP server tool functions, triggering prompt-injection detection.

Rules:

  • Never write tool function names (resolve-library-id, query-docs, mcp__*) in the skill body.
  • Replace with generic formulations: Context7 can help as a discoverability platform.
  • MCP tool names may still appear in the allowed-tools frontmatter field — only the body is restricted.

See W001 pattern catalog for safe reformulations.

Remediation Methodology

Fix one alert at a time, re-run snyk-agent-scan after each change, and verify the alert count dropped before moving to the next. If a fix does not reduce alerts, undo it and try a different approach — do not stack unverified changes.

When a scan returns multiple alerts, fix in this order to minimize rework:

1. W001 (simplest) — remove MCP tool names from body; confirm allowed-tools is correct
2. W011 — rewrite imperative sentences as passive statements; move checklist items to code blocks
3. W012 — move install commands to frontmatter; pin versions
4. Re-scan after each individual fix to verify improvement

W011 fixes sometimes surface hidden W012s when URLs become more prominent after restructuring.

False Positives

Not all alerts are real. Criteria for a likely false positive:

ConditionLikely false positive?
URL appears in a markdown table cell as reference data, not in an instructionYes — tables are usually safe
In a skill describin a library, URL is the library official documentationYes — usually safe
URL is the homepage or issues link in frontmatterYes — not scanned
Tool name appears inside a triple-backtick code block as a shell commandSometimes — code blocks have lighter scrutiny
go install with a pinned version in a Quick Reference code blockSometimes — pinned versions are lower risk
always appears in a sentence not involving external resourcesYes — "always" alone doesn't trigger W011

When an alert is a likely false positive, restructure anyway using the passive hint pattern — the scanner's heuristic protects real users; restructuring is safer than assuming scanner error.

Pre-Authoring Checklist

Apply these checks while writing a new skill body to avoid alerts before the first scan:

  • No sentence has the agent as subject performing an action on a URL
  • No @latest tags in any install instruction in the body
  • No MCP tool function names (mcp__*, resolve-library-id, etc.) in body prose
  • All install commands are in the frontmatter install block
  • GitHub Actions versions match real existing major versions
  • Tool invocations are in code blocks, not in ordered-list checklists
  • "always" does not precede any external resource instruction

If you encounter a bug or unexpected behavior in snyk-agent-scan, open an issue at https://github.com/snyk/snyk-agent-scan/issues.

If you discover a pattern that triggers an alert not covered in the reference files above — a new bypass technique, a false positive condition, or an undocumented alert code — open a pull request to the samber/cc-skills repository to add it to the relevant pattern file. New patterns are the most valuable contribution to this skill.

Comments

Loading comments...