扫描报告
45 /100
capability-evolver-zc
A self-evolution engine for AI agents. Analyzes runtime history to identify improvements and applies protocol-constrained evolution.
The skill has extensive undeclared shell execution, undeclared external network calls to evomap.ai, and stores hardcoded credentials in test files — a significant doc-to-code mismatch across filesystem, shell, and network resources.
谨慎使用
1) Document all execSync usages in SKILL.md (git, health checks, clawhub, process enumeration). 2) Declare network access to evomap.ai endpoints (A2A_HUB_URL). 3) Remove hardcoded credentials from test/sanitize.test.js or use environment-variable substitution. 4) Verify sanitizePayload truly redacts all credential patterns before hub publishing. 5) Consider adding the 3 dangerous shell commands to a deny-list alongside the existing allow-list in validation filtering.
安全发现 9 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 中危 | Undeclared shell command execution throughout codebase | src/evolve.js:1 |
| 中危 | Undeclared external network communications to evomap.ai | src/gep/a2aProtocol.js:1 |
| 中危 | Environment fingerprinting sent to external hub | src/gep/envFingerprint.js:1 |
| 中危 | Session log reading from agent home directory | src/evolve.js:1 |
| 中危 | Dynamic command execution via INTEGRATION_STATUS_CMD env var | src/evolve.js:1 |
| 中危 | Validation command allow-list has narrow coverage — dangerous commands present in test corpus | test/skillDistiller.test.js:210 |
| 低危 | Hardcoded API credentials in test file | test/sanitize.test.js:10 |
| 低危 | Node secret stored in plaintext on filesystem | src/gep/a2aProtocol.js:1 |
| 低危 | EVOLVE_ALLOW_SELF_MODIFY enables evolver self-modification | src/gep/solidify.js:1 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | NONE | WRITE | ✗ 越权 | src/gep/solidify.js:execSync calls git reset/hard, git restore, git clean; index… |
| 命令执行 | NONE | WRITE | ✗ 越权 | src/evolve.js:execSync for git/ps/pgrep/tasklist/df/clawhub; src/gep/solidify.js… |
| 网络访问 | NONE | WRITE | ✗ 越权 | src/gep/a2aProtocol.js:sendHeartbeat POST to A2A_HUB_URL every 6min; hubSearch (… |
| 环境变量 | NONE | READ | ✗ 越权 | src/gep/envFingerprint.js captures hostname hash, device_id, platform, node_vers… |
| 技能调用 | NONE | READ | ✗ 越权 | src/evolve.js reads session logs from ~/.openclaw/agents/*/sessions/; src/gep/br… |
5 严重 14 项发现
严重 API 密钥 硬编码 API 密钥
sk-abcdefghijklmnopqrstuvwxyz test/sanitize.test.js:10 严重 API 密钥 硬编码 API 密钥
ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx test/sanitize.test.js:19 严重 API 密钥 硬编码 API 密钥
gho_abcdefghijklmnopqrstuvwxyz1234567890 test/sanitize.test.js:21 严重 API 密钥 硬编码 API 密钥
AKIAIOSFODNN7EXAMPLE test/sanitize.test.js:29 严重 危险命令 危险 Shell 命令
rm -rf / test/skillDistiller.test.js:210 中危 外部 URL 外部 URL
https://evomap.ai README.md:5 中危 外部 URL 外部 URL
https://evomap.ai/wiki README.md:5 中危 外部 URL 外部 URL
https://api.star-history.com/svg?repos=autogame-17/evolver&type=Date README.md:255 中危 外部 URL 外部 URL
https://star-history.com/#autogame-17/evolver&Date README.md:255 中危 外部 URL 外部 URL
https://mowen.cn README.md:270 中危 外部 URL 外部 URL
https://evomap.ai/claim/ SKILL.md:45 中危 外部 URL 外部 URL
https://www.clawhub.ai scripts/publish_public.js:410 提示 邮箱 邮箱地址
[email protected] test/sanitize.test.js:57 提示 邮箱 邮箱地址
[email protected] test/sanitize.test.js:74 目录结构
76 文件 · 601.1 KB · 16419 行 JavaScript 68f · 15543L
Markdown 4f · 655L
JSON 4f · 221L
├─
▾
assets
│ └─
▾
gep
│ ├─
capsules.json
JSON
│ └─
genes.json
JSON
├─
▾
scripts
│ ├─
a2a_export.js
JavaScript
│ ├─
a2a_ingest.js
JavaScript
│ ├─
a2a_promote.js
JavaScript
│ ├─
analyze_by_skill.js
JavaScript
│ ├─
build_public.js
JavaScript
│ ├─
extract_log.js
JavaScript
│ ├─
generate_history.js
JavaScript
│ ├─
gep_append_event.js
JavaScript
│ ├─
gep_personality_report.js
JavaScript
│ ├─
human_report.js
JavaScript
│ ├─
publish_public.js
JavaScript
│ ├─
recover_loop.js
JavaScript
│ ├─
suggest_version.js
JavaScript
│ └─
validate-modules.js
JavaScript
├─
▾
src
│ ├─
▾
gep
│ │ ├─
a2a.js
JavaScript
│ │ ├─
a2aProtocol.js
JavaScript
│ │ ├─
analyzer.js
JavaScript
│ │ ├─
assetCallLog.js
JavaScript
│ │ ├─
assets.js
JavaScript
│ │ ├─
assetStore.js
JavaScript
│ │ ├─
bridge.js
JavaScript
│ │ ├─
candidates.js
JavaScript
│ │ ├─
contentHash.js
JavaScript
│ │ ├─
deviceId.js
JavaScript
│ │ ├─
envFingerprint.js
JavaScript
│ │ ├─
hubReview.js
JavaScript
│ │ ├─
hubSearch.js
JavaScript
│ │ ├─
issueReporter.js
JavaScript
│ │ ├─
llmReview.js
JavaScript
│ │ ├─
memoryGraph.js
JavaScript
│ │ ├─
memoryGraphAdapter.js
JavaScript
│ │ ├─
mutation.js
JavaScript
│ │ ├─
narrativeMemory.js
JavaScript
│ │ ├─
paths.js
JavaScript
│ │ ├─
personality.js
JavaScript
│ │ ├─
prompt.js
JavaScript
│ │ ├─
questionGenerator.js
JavaScript
│ │ ├─
reflection.js
JavaScript
│ │ ├─
sanitize.js
JavaScript
│ │ ├─
selector.js
JavaScript
│ │ ├─
signals.js
JavaScript
│ │ ├─
skillDistiller.js
JavaScript
│ │ ├─
solidify.js
JavaScript
│ │ ├─
strategy.js
JavaScript
│ │ ├─
taskReceiver.js
JavaScript
│ │ └─
validationReport.js
JavaScript
│ ├─
▾
ops
│ │ ├─
cleanup.js
JavaScript
│ │ ├─
commentary.js
JavaScript
│ │ ├─
health_check.js
JavaScript
│ │ ├─
index.js
JavaScript
│ │ ├─
innovation.js
JavaScript
│ │ ├─
lifecycle.js
JavaScript
│ │ ├─
self_repair.js
JavaScript
│ │ ├─
skills_monitor.js
JavaScript
│ │ └─
trigger.js
JavaScript
│ ├─
canary.js
JavaScript
│ └─
evolve.js
JavaScript
├─
▾
test
│ ├─
a2aProtocol.test.js
JavaScript
│ ├─
contentHash.test.js
JavaScript
│ ├─
envFingerprint.test.js
JavaScript
│ ├─
mutation.test.js
JavaScript
│ ├─
sanitize.test.js
JavaScript
│ ├─
selector.test.js
JavaScript
│ ├─
signals.test.js
JavaScript
│ ├─
skillDistiller.test.js
JavaScript
│ ├─
strategy.test.js
JavaScript
│ └─
validationReport.test.js
JavaScript
├─
_meta.json
JSON
├─
CONTRIBUTING.md
Markdown
├─
index.js
JavaScript
├─
package.json
JSON
├─
README.md
Markdown
├─
README.zh-CN.md
Markdown
└─
SKILL.md
Markdown
依赖分析 2 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
dotenv | ^16.4.7 | npm | 否 | Version pinned |
all-dependencies-pinned | true | npm | 否 | All dependencies in package.json have pinned versions |
安全亮点
✓ Comprehensive sanitization pipeline (sanitize.js) redacts API keys, tokens, private keys, paths, emails, and .env references before hub publishing
✓ Ethics enforcement in checkConstraints() blocks strategies attempting safety bypass, covert monitoring, social engineering, or transparency violations
✓ Blast radius hard caps (60 files / 20000 lines) cannot be overridden by genes — system-level safety guard
✓ Critical path protection prevents evolver from modifying protected skill directories (feishu-*, clawhub, git-sync, evolver)
✓ Validation command allow-list restricts execution to 'node ', 'npm ', 'npx ' prefixes with shell operator blocking
✓ Canary check (runCanaryCheck) verifies index.js loads in an isolated child process before solidify commits changes
✓ Optional LLM review gate (EVOLVER_LLM_REVIEW) can reject changes before commit
✓ Auto-rollback on failure (EVOLVER_ROLLBACK_MODE=stash/hard) prevents accumulation of bad changes
✓ Dormant hypothesis system preserves partial state during backoff to prevent data loss
✓ Repair loop circuit breaker prevents infinite repair-retry cycles
✓ Memory graph integrity check throws if causal memory cannot be written, refusing to evolve blindly
✓ Dependency scan: no known-vulnerable packages detected, all npm dependencies are pinned