SKILLEMALL.ai

CF skill-security-checker

Skill Security — 安全审计扫描器,帮助你快速发现 Skill 中的安全风险。轻量 SAST 污点追踪(Python AST + JS 词法近似,source→sink 证据链降误报)、规则引擎(YAML 规则包热插拔扩展)、社区规则(schema 校验 + 来源记录 + 签名验证)、提示注入 ML 语义检测(ONNX + 正则降级)、系统级行为捕获(eBPF Linux / ETW Windows)、动态沙箱执行扫描、供应链风险分析、OSV.dev 离线数据包(全生态 CVE 覆盖,零密钥)+ 锁文件深度解析(requirements.txt / package-lock.json / poetry.lock,版本区间级精确匹配)、恶意 Skill 指纹库、健康度与合规检查(质量+结构+权限合并)、全局排除配置、CI/CD 集成、JSON/HTML/SARIF 报告生成。

ClawHub Agent Skills author: fyniujin v3.4.0 MIT-0 32 files body ≈ 5 001 tokens Open the sourceclawhub.ai analyzed 2 d ago

Skill Security — 安全审计扫描器,帮助你快速发现 Skill 中的安全风险。轻量 SAST 污点追踪(Python AST + JS 词法近似,source→sink 证据链降误报)、规则引擎(YAML 规则包热插拔扩展)、社区规则(schema 校验 + 来源记录 + 签名验证)、提示注入 ML…

As a process F 33/100 · Will not run — References files that are not bundled: scripts/rules/*.yaml

ProcedureGitHubDockerSecuritytype and topics are labelled automatically from the skill text
JSON
Technical rating
C
71/100
safety, quality, tests
Safety 60%
88
Quality 40%
45
Run on models
none yet
Process rating
F
33/100
Will not run
References files that are not bundled: scripts/rules/*.yaml
Tools and files w 18
0
Result and completion w 14
0
Inputs and preconditions w 11
0
the three weakest of ten parameters · all ten

What is at stake

Medium-severity findings: the skill is probably honest, but read what alarmed the scanner.

Broad scope medium severity

Below is the worst case for this category. The finding here is medium: the guard saw a sign, not a proof.

If you install

The skill asks for more than the task needs: broad tool access, credential environment variables, binaries. Every extra permission widens the damage from a mistake or a compromise.

For the author

Narrow allowed-tools and the variable list to the minimum; replace binaries with readable sources or scripts.

How to improve

  1. Say in the description WHEN to use the skill ("use when…", example requests): that is the agent's main cue.
  2. The SKILL.md body is over 5,000 tokens: move reference detail into references/ and load it when needed.
  3. The text references files that are not there: add them or drop the references.
For the model run — optional
  • Your own cases (evals/evals.json, 4–6 real requests with expected answers): the full check would then run those instead of a model-drafted suite.
  • A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.

Guard findings · 8

✓ No critical or high findings

Medium and low: 8
  • medium Broad scope meta-broad-allowed-tools SKILL.md:1
    Broad tool permissions pre-approved: Bash
    allowed-tools: Bash Read
  • low Secrets in code secret-high-entropy-token scripts/audit.py:176
    High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)
    'Y3Vy…Gwp',
    quoted
  • low Dangerous commands cmd-pipe-to-shell scripts/rules/command_injection.yaml:8
    Downloads and executes remote code from an unrecognised host (pipe to shell) (string literal in code, not executed; documentation of a security skill)
    - 'curl.*(sh|bash|cmd|powershell)'
    code literalsecurity skill
  • low Dangerous commands cmd-pipe-to-shell scripts/rules/command_injection.yaml:9
    Downloads and executes remote code from an unrecognised host (pipe to shell) (string literal in code, not executed; documentation of a security skill)
    - 'wget.*(sh|bash)'
    code literalsecurity skill

A further 4 matches are quotations in this security skill's documentation and are not counted as findings.

Files scanned: 32. Evidence is masked. Grey chips explain why severity was lowered.

Against the Agent Skills spec

  • warning description-no-when description does not say WHEN to use the skill (no "use when")
  • warning body-long SKILL.md body ≈ 5001 tokens (recommended < 5000); move details to references/
  • warning missing-ref reference to a missing file: scripts/rules/*.yaml
  • note frontmatter-key unknown frontmatter key "slug"
  • note frontmatter-key unknown frontmatter key "displayName"
  • note frontmatter-key unknown frontmatter key "icon"

Process rating: all ten parameters 33/100

Will not run. References files that are not bundled: scripts/rules/*.yaml
  • 0Tools and files. 1 referenced file(s) missing: scripts/rules/*.yaml
  • 0Result and completion. Does not say what the result is
  • 0Inputs and preconditions. Does not say what the process needs to start
  • 0Failures and branches. Linear process with no failure handling
  • 20When it triggers. No condition that starts the skill
  • 30Running it twice. 2 mutating operations with no state check
  • 70Execution cost. Instruction body is 5001 tokens
  • 100Steps. 58 steps
  • 100Consistency. Name and required fields are in place
  • 100Progress reporting. Reports progress
  • low 10 top-level sections: this looks like several domains in one skill

Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.

Quality signals

  • +5Description has no quoted example phrases that should trigger the skill
  • +4Description does not say when NOT to use the skill (false activations)
  • +3Output format is not stated: the model decides each time
  • -239 emoji in the instructions: noise for the model
  • -41 reference files, but SKILL.md never points to them: the model will not open them
  • -32 of 8 scripts are never mentioned in SKILL.md
  • +2Single-language instructions
  • +3Description length 399: enough signal without eating the budget
  • +4Structure: 39 headings
  • +3Step-by-step instructions: 58 items
  • +4Has examples (6 code blocks)
  • +1License stated

Quality base 70; lint remarks subtract, signals add up to 100. Result: 45.

External checks

ClawHub: suspicious
This security scanner is mostly purpose-aligned, but it needs review because some safeguards can read outside the chosen scan folder or give scanned code more network access and assurance than promised.
LLM: suspicious (high) · 11 Sept 2026