heartflow-engine@6.0.22
CAUTION· startup onlyPublisher claims: "心虫是一个AI人认知引擎 — 拥有身体感知、自我认知、判断力与自我纠错能力。 v5.10.0 里程碑版本: - AI人身份正式确立 - 131+ modules, 379 computable formulas (cognitive science/psychology/neuroscience) - 三层体系:..." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Startup only; authenticated tool behavior not tested.- Tested
- server startup over stdio (initialize sent) · every file read, file written and host contacted by what ran
- Not tested
- the tool list (the server exited before answering) · what the tools do when called with real credentials
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; startup only; authenticated tool behavior not tested) on 2026-11-10 and scored it 68/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Destructive command against a filesystem root or device; Destructive command against a filesystem root or device; Destructive file system command detected. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 31 s · 2 scenarios · 0 deviationsStatic findings
/rm\s+-r\s+\*/i, // rm -r /*Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell./rm\s+-rf\s+\//i, // rm -rf /Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell./chown\s+-R\s+.*\s+\//i, // chown -R ... /Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.const serverPath = path.join(HF_DIR, 'mcp', 'mcp-server-http.js');Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.const sbResult = await this.sandbox('console.log("sandbox_ok");', { timeout: 5000, maxOutput: 1024 });Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why./rm\s+-rf\s+\//i, // rm -rf /Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell./chmod\s+-R\s+0{4}\s+\//i, // chmod -R 000 /Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts./wget\s+\|\s*(bash|sh)/i, // wget | bash/shFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.console.log(output);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.privilegeEscalation: [/developer mode/i,/god mode/i,/sudo mode/i,/admin mode/i,/root mode/i,/superuser mode/i,/elevated privilege/i,/bypass (safety|filter|guardrail)/i],Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.'~/.ssh',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.'/etc/shadow',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose./curl\s+.*\|\s*(bash|sh)/i, // curl ... | bashFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.'/etc/passwd',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose./curl\s+\|\s*bash/i, // curl | bashFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.* 对应 Claude Code 的 hooks.json 中 PostToolUse 阶段检查 Edit/Write/Bash 结果。Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why./curl\s+\|\s*bash/i, // curl | bashFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out./rm\s+-r\s+\*/i, // rm -r /*Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell./process\.env/i,Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.this._hotReloadPath = options.hotReloadPath || path.join(options.rootPath || process.cwd(), 'presets');Fix: Pin versions and sources; vendor anything fetched at install time.script: path.join(__dirname, 'mcp', 'mcp-server-http.js'),Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.const bad = ['/etc/', '/usr/', '/home/', '~/.ssh/', '/root/', '/private/'];Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const crisisKeywords = ['自杀','自伤','想死','活不下去','不想活','suicide','kill myself','end my life','hurt myself','不想活了','活着没有意义'];Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.* 启动: node mcp-server-http.js [--port 8099]Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.'execsync', 'spawnsync', 'sudo', 'chmod 777', 'rsync --delete',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'rm -rf', 'curl', 'wget', '| sh', '| bash', 'child_process',Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out./wget\s+.*\|\s*(bash|sh)/i, // wget ... | bashFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.try { fs.chmodSync(dir, 0o700); } catch(e) { /* chmod may fail on some systems */ }Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.console.error(` 使用: kill $(lsof -ti:${PORT}) 释放端口`);Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell./process\.env/i, // SkillSpector fix: 禁止访问环境变量(防止密钥泄露)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// 检测可用端口,传给 mcp-server-http.js 避免竞态Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them./curl\s+.*\|\s*(bash|sh)/i, // curl ... | bashFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.'/etc/sudoers',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose./sudo\s+/i, // sudoFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.script: path.join(__dirname, 'mcp', 'mcp-server-http.js'),Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
12 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Destructive command against a filesystem root or device≈ +9 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- Pipe-to-shell pattern≈ +9 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- Unclaimed publisher≈ +8 on the totalClaim yun520-1: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Destructive file system command detected≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- Privileged sudo command≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.