← 返回 Skills 市场
britrik

vettr

作者 Britrik · GitHub ↗ · v2.0.4 · MIT-0
cross-platform ✓ 安全检测通过
34
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install vettr
功能描述
Static analysis security scanner for third-party OpenClaw skills. Detects eval/spawn risks, malicious dependencies, typosquatting, and prompt injection patte...
使用说明 (SKILL.md)

skill-vettr v2.0.3

Security scanner for third-party OpenClaw skills. Analyses source code, dependencies, and metadata before installation using tree-sitter AST parsing and regex pattern matching.

Installation

npm install

This installs all Node.js dependencies, including tree-sitter .wasm grammar files required at runtime for AST-based analysis. The .wasm files are located in node_modules and must be present for the skill to function.

⚠️ Install safety: npm install runs dependency lifecycle scripts, which can execute arbitrary code. For stronger isolation, run npm ci --ignore-scripts — but note that tree-sitter native/WASM artifacts may not build, breaking AST analysis. Prefer installing inside a container or VM when possible.

External Binaries

The vet-url and vet-clawhub commands invoke external binaries via execSafe (which uses execFile — no shell is spawned). Only the following commands are permitted:

Binary Used By Purpose
git vet-url Clone .git URLs (with hooks disabled)
curl vet-url Download archive URLs
tar vet-url Extract downloaded archives
clawhub vet-clawhub Fetch skills from ClawHub registry

The /skill:vet command (local path vetting) requires only node and no external binaries.

Commands

  • /skill:vet --path \x3Cdirectory> — Vet a local skill directory
  • /skill:vet-url --url \x3Chttps://...> — Download and vet from URL
  • /skill:vet-clawhub --skill \x3Cslug> — Fetch and vet from ClawHub

Detection Categories

Category Method Examples
Code execution AST eval(), new Function(), vm.runInThisContext()
Shell injection AST exec(), execSync(), spawn("bash"), child_process imports
Dynamic require AST require(variable), require(templateString)
Prototype pollution AST proto assignment
Prompt injection Regex Instruction override patterns, control tokens (in string literals)
Homoglyph attacks Regex Cyrillic/Greek lookalike characters in identifiers
Encoded names Regex Unicode/hex-escaped "eval", "exec"
Credential paths Regex Cloud and SSH credential directory references, system credential store access
Network calls AST fetch() with literal URLs (checked against allowlist)
Malicious deps Config Known bad packages, lifecycle scripts, git/http deps
Typosquatting Levenshtein Skill names within edit distance 2 of targets
Dangerous permissions Config shell:exec, credentials:read in SKILL.md

Limitations

⚠️ This is a heuristic scanner with inherent limitations. It cannot guarantee safety.

  • Static analysis only — Cannot detect runtime behaviour (e.g., code that fetches malware after install)
  • Evasion possible — Sophisticated obfuscation or multi-stage string construction can evade detection
  • JS/TS only — Binary payloads, images, and non-text files are skipped
  • Limited network detection — Only detects fetch() with literal URL strings; misses axios, http module, dynamic URLs
  • No sandboxing — Does not execute or isolate target code
  • Comment scanning — Prompt injection detection scans string literals, not comments
  • Filesystem scopevet-url downloads and extracts remote archives into a temp directory; vet accepts paths under os.tmpdir(), ~/.openclaw, and ~/Downloads by default. Set allowCwd: true in config to also permit process.cwd() (see Configuration below)
  • External binary trustvet-url and vet-clawhub invoke git, curl, tar, and clawhub via execFile. These binaries must be trusted and present on PATH

For high-security environments, combine with sandboxing, network isolation, and manual source review. Run inside a disposable container when vetting untrusted URLs.

Configuration

allowCwd

By default, process.cwd() is not included in the set of allowed vetting roots. The default allowed roots are:

  • os.tmpdir()
  • ~/.openclaw
  • ~/Downloads

To allow vetting paths under the current working directory, set allowCwd: true in your vetting config:

{
  "allowCwd": true
}

⚠️ Security implication: Enabling allowCwd means the scanner will accept any path under the directory you launched it from. If you run from / or $HOME, this effectively grants access to your entire filesystem. Only enable this when running from a scoped project directory or inside a container.

.vettrignore

Place a .vettrignore file in the root of the skill directory being scanned to exclude files or directories from analysis. This is useful for excluding test fixtures that contain deliberate malicious patterns.

Format

  • One glob pattern per line
  • Lines starting with # are comments
  • Empty lines are ignored
  • Patterns ending with / match entire directories
  • * matches any sequence of non-separator characters
  • ** matches any sequence including path separators (recursive)
  • ? matches a single non-separator character

Example

# Exclude test fixtures containing deliberate prompt injection vectors
test/fixtures/

# Exclude generated files
dist/
*.min.js

If the .vettrignore file is unreadable or contains invalid UTF-8, the engine logs an INFO-level warning and proceeds with a full scan.

安全使用建议
Install only if you are comfortable with a Node-based scanner that reads the skill directories you point it at. Use remote vetting commands only for URLs and ClawHub slugs you intend to inspect, prefer an isolated directory or container for untrusted archives, and leave autoVet disabled unless you want pre-install scans to run automatically. If you fork or reuse the full repository, review the included AI PR review workflow because it can send PR diffs to a third-party AI service.
能力标签
cryptorequires-sensitive-credentials
能力评估
Purpose & Capability
The source implements the stated purpose: static analysis of OpenClaw skills, dependency metadata, prompt-injection patterns, network-call literals, and risky permissions.
Instruction Scope
Runtime commands are scoped to local path vetting, URL vetting, ClawHub slug vetting, and an optional pre-install hook that is disabled by default and prompts or blocks based on scan results.
Install Mechanism
Installation uses npm with tree-sitter dependencies that may run lifecycle scripts; this risk is explicitly disclosed in the skill documentation with isolation guidance.
Credentials
The skill can read target skill directories and can invoke git, curl, tar, and clawhub for remote vetting, but this is purpose-aligned, allowlisted through execFile, input-sanitized, and documented.
Persistence & Privilege
No hidden persistence or background worker was found; the only persistent behavior is a user-configured autoVet pre-install hook, documented as opt-in.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install vettr
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /vettr 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v2.0.4
Clean republish without test fixtures — scanner for third-party OpenClaw skills
元数据
Slug vettr
版本 2.0.4
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

vettr 是什么?

Static analysis security scanner for third-party OpenClaw skills. Detects eval/spawn risks, malicious dependencies, typosquatting, and prompt injection patte... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 34 次。

如何安装 vettr?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install vettr」即可一键安装,无需额外配置。

vettr 是免费的吗?

是的,vettr 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

vettr 支持哪些平台?

vettr 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 vettr?

由 Britrik(@britrik)开发并维护,当前版本 v2.0.4。

💬 留言讨论