Scan Report
45 /100
feishu-evolver-wrapper
Feishu-integrated wrapper for capability-evolver with lifecycle management and reporting
Feishu evolver wrapper with significant undocumented shell execution, dynamic code evaluation, process control, and persistence mechanisms that lack clear security justification in documentation.
Use with caution
Review shell execution calls and evaluate if the scope can be reduced. The new Function() evaluation for untrusted JSON represents high-risk dynamic code execution. Ensure all network calls are explicitly documented.
Findings 8 items
| Severity | Finding | Location |
|---|---|---|
| Medium | Dynamic code evaluation on untrusted input Obfuscation | index.js:1230 |
| Medium | Undeclared shell execution for git operations Priv Escalation | index.js:400 |
| Medium | Undeclared openclaw CLI execution Priv Escalation | lifecycle.js:150 |
| Medium | Missing declaration of process control Doc Mismatch | lifecycle.js:200 |
| Low | Thought injection via external file Prompt Injection | index.js:450 |
| Low | Session lock file deletion Sensitive Access | index.js:500 |
| Low | Version not pinned in dependencies Supply Chain | package.json:8 |
| Low | Skills monitor can execute arbitrary node code Sensitive Access | skills_monitor.js:50 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Shell | NONE | WRITE | ✗ Violation | index.js:execSync lines, lifecycle.js:execSync for git/CLI, self-repair.js, skil… |
| Network | NONE | WRITE | ✗ Violation | feishu-helper.js:90 - POSTs to open.feishu.cn API |
| Filesystem | NONE | WRITE | ✗ Violation | Writes to memory/, logs/, workspace/ directories with atomic tmp+rename patterns |
| Environment | NONE | READ | ✗ Violation | Reads EVOLVE_*, FEISHU_*, OPENCLAW_* vars, sets them for child processes |
| Browser | NONE | NONE | — | N/A |
| Database | NONE | NONE | — | N/A |
| Clipboard | NONE | NONE | — | N/A |
| Skill Invoke | NONE | WRITE | ✗ Violation | Spawns openclaw agent sessions and manages evolver lifecycle |
3 findings
Medium External URL 外部 URL
https://open.feishu.cn/open-apis/docx/v1/documents/$ export_history.js:76 Medium External URL 外部 URL
https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type= feishu-helper.js:90 Medium External URL 外部 URL
https://open.feishu.cn/open-apis/im/v1/chats?page_size=100$ report.js:260 File Tree
24 files · 190.7 KB · 4554 lines JavaScript 19f · 4452L
Shell 1f · 47L
Markdown 2f · 41L
JSON 2f · 14L
├─
▾
utils
│ ├─
dashboard-generator.js
JavaScript
│ ├─
logger.js
JavaScript
│ └─
sleep.js
JavaScript
├─
_meta.json
JSON
├─
check_health.js
JavaScript
├─
cleanup.js
JavaScript
├─
commentary.js
JavaScript
├─
daemon.sh
Shell
├─
exec_cache.js
JavaScript
├─
export_history.js
JavaScript
├─
feishu-helper.js
JavaScript
├─
index.js
JavaScript
├─
issue_tracker.js
JavaScript
├─
lifecycle.js
JavaScript
├─
package.json
JSON
├─
README.md
Markdown
├─
report.js
JavaScript
├─
self-repair.js
JavaScript
├─
send-card-cli.js
JavaScript
├─
SKILL.md
Markdown
├─
skills_monitor.js
JavaScript
├─
trigger.js
JavaScript
├─
visualize_dashboard.js
JavaScript
└─
weekly_insight.js
JavaScript
Dependencies 2 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
evolver | file:../evolver | local | No | Local path dependency, not version pinned |
fetchWithAuth | N/A | ../feishu-common | No | Local shared module |
Security Positives
✓ Secret scanning mechanism exists in feishu-helper.js with SECRET_PATTERNS to prevent credential exfiltration
✓ Atomic file operations used (tmp+rename pattern) for PID files and cycle counters
✓ Circuit breaker pattern for failure handling prevents resource exhaustion
✓ Singleton guard prevents duplicate wrapper instances
✓ Kill switch mechanism for emergency stop
✓ Failure lessons logging to prevent repeated mistakes
✓ Process existence verification before killing PIDs (isWrapperProcess check)
✓ Debounce mechanisms on cron checks and ensure operations