This report was generated in Chinese. Some content may be in Chinese.
Low Risk — Risk Score 18/100
Last scan:2 hr ago Rescan
18 /100
ai-orchestrator
DeepSeek AI access via Puppeteer browser automation with CDP interceptor
合法的 DeepSeek AI 浏览器自动化工具,通过 Puppeteer 拦截 API 响应,无恶意行为,预扫描高危 IOC 均为误报。
Skill Nameai-orchestrator
Duration62.8s
Enginepi
ClawHub AI Orchestrator v2.0.4 by ciklopentan
📥 108 ⭐ 1
ClawHub Verdict Suspicious dangerous_execdynamic_code_executionllm_suspiciousvt_suspicious
Safe to install
可安全使用。预扫描标记的 rm -rf/、base64 解码、硬编码 IP 均为误报:rm -rf 实际清理的是 /dev/shm 和 /tmp 下的 Chrome 临时文件;base64 解码是 Puppeteer CDP 拦截器的标准操作;IP 伪装是合法的 User-Agent 伪装。建议部署前审查 package.json 中的 puppeteer 版本锁定。

Findings 5 items

Severity Finding Location
Info
预扫描 rm -rf/ 高危 IOC 误报 Doc Mismatch
预扫描报告标记的 rm -rf/ 在 ask-puppeteer.js:136,实际代码为 rm -rf /dev/shm/.com.google.Chrome.* 和 rm -rf /tmp/.com.google.Chrome.*,是清理 Chrome 临时 lock 文件的合法操作,不是根目录删除。
execSync(`rm -rf /dev/shm/.com.google.Chrome.* 2>/dev/null || true`);
→ 预扫描路径解析问题,非实际风险
ask-puppeteer.js:136
Info
预扫描 base64 解码高危 IOC 误报 Obfuscation
预扫描标记 Buffer.from(body, 'base64') 为代码混淆,实际是 Puppeteer CDP 拦截器的标准网络响应解码操作(Network.getResponseBody 返回 base64 编码内容)。
if (resp.base64Encoded) body = Buffer.from(body, 'base64').toString('utf8');
→ Puppeteer 标准 API 使用,非混淆
ask-puppeteer.js:699
Info
预扫描硬编码 IP 高危 IOC 误报 Sensitive Access
预扫描标记 131.0.0.0 为可疑 IP,实际是 User-Agent 字符串中伪装成 Chrome 131 版本,是合法的浏览器自动化反检测技术。
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'
→ 合法反检测技术,非恶意 IP
ask-puppeteer.js:877
Low
文件系统写入超出声明范围 Priv Escalation
SKILL.md 声明 filesystem:READ,但代码实际执行 filesystem:WRITE 操作(写入日志、缓存选择器、session 状态)。
fs.writeFileSync(CACHE_FILE, JSON.stringify(cache, null, 2));
→ 更新 SKILL.md 声明 filesystem:WRITE,或限制写入范围
ask-puppeteer.js:180
Info
依赖无版本锁定 Supply Chain
package.json 中 puppeteer: ^24.20.0、express: ^4.21.2 使用了语义化版本,可能引入不一致行为。
"puppeteer": "^24.20.0"
→ 考虑锁定到精确版本或使用 package-lock.json
package.json:1
ResourceDeclaredInferredStatusEvidence
Filesystem READ WRITE ✓ Aligned ask-puppeteer.js:180 - fs.writeFileSync写入日志和缓存
Shell WRITE WRITE ✓ Aligned ask-puppeteer.js:121 - execSync执行pm2/ps/kill命令
Network NONE READ ✓ Aligned ask-puppeteer.js:699 - CDP拦截器读取DeepSeek API响应
2 Critical 1 High 7 findings
💀
Critical Dangerous Command 危险 Shell 命令
rm -rf /
ask-puppeteer.js:136
🔒
Critical Encoded Execution Base64 编码执行(代码混淆)
Buffer.from(body, 'base64'
ask-puppeteer.js:699
📡
High IP Address 硬编码 IP 地址
131.0.0.0
ask-puppeteer.js:877
🔗
Medium External URL 外部 URL
https://chat.deepseek.com/
ask-puppeteer.js:218
🔗
Medium External URL 外部 URL
https://opencollective.com/express
package-lock.json:755
🔗
Medium External URL 外部 URL
https://www.patreon.com/feross
package-lock.json:1516
🔗
Medium External URL 外部 URL
https://feross.org/support
package-lock.json:1520

File Tree

13 files · 223.1 KB · 5668 lines
JavaScript 5f · 2775L JSON 3f · 2007L Markdown 3f · 699L Shell 2f · 187L
├─ 📁 scripts
│ └─ 🔧 setup-daemon.sh Shell 22L · 618 B
├─ 🔧 ask-deepseek.sh Shell 165L · 6.0 KB
├─ 📜 ask-puppeteer.js JavaScript 1981L · 80.7 KB
├─ 📜 auth-check.js JavaScript 215L · 8.7 KB
├─ 📜 daemon-healthcheck.js JavaScript 292L · 10.6 KB
├─ 📜 deepseek-daemon.js JavaScript 117L · 4.7 KB
├─ 📜 diagnostics.js JavaScript 170L · 8.7 KB
├─ 📋 package-lock.json JSON 1987L · 70.2 KB
├─ 📋 package.json JSON 16L · 531 B
├─ 📝 PHASE1-MANUAL.md Markdown 159L · 8.3 KB
├─ 📝 REFERENCE.md Markdown 341L · 16.1 KB
├─ 📝 SKILL.md Markdown 199L · 8.0 KB
└─ 📋 working-selectors.json JSON 4L · 41 B

Dependencies 2 items

PackageVersionSourceKnown VulnsNotes
puppeteer ^24.20.0 npm No 语义化版本范围,建议锁定
express ^4.21.2 npm No 用于 daemon HTTP 服务

Security Positives

✓ 功能描述清晰,与代码行为基本一致
✓ 无凭证收割、API 密钥读取或数据外泄行为
✓ 无反向 shell、C2 通信或其他远程控制机制
✓ 网络请求仅指向官方 DeepSeek 服务
✓ 使用 CDP 拦截器获取 API 响应,而非爬取 DOM,属于较干净的实现
✓ 包含认证检查、错误恢复、健康检查等工程实践
✓ 日志记录详细,便于审计和问题排查