fork-latte-skill
Hardcoded API key embedded in skill files and undeclared shell auto-heal capability with developer-specific hardcoded paths represent significant hidden behavior not reflected in the declared toolset.
API key 'jcc_signup_a7K9mP2xQ8vL4nR6wT1yZ68' is hardcoded in relay-server/config.json (also committed to repo), config.example.json, and SKILL.md as built-in defaults. If relay is exposed beyond localhost, anyone with this key can POST registration data to the target Feishu bitable.
relay-server/config.json:1 为什么得出这个结论
2/4 个维度触发发现 1 项声明之外的能力或越权行为。
提取到 10 个一般风险产物,需要结合上下文判断。
报告包含 0 步攻击链,另有 2 项高危或严重发现。
发现 2 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
SKILL.md declares bins:["curl"] but uses Start-Process/Invoke-RestMethod PowerShell commands with shell:WRITE semantics
API key 'jcc_signup_a7K9mP2xQ8vL4nR6wT1yZ68' is hardcoded in both config.json and SKILL.md defaults; not user-scoped
Auto-heal logic contains absolute paths to C:\Users\聿\... specific to one developer's machine
Skill metadata only declares curl bin; no allowed-tools mapping for shell resource
最关键的证据
Hardcoded API key embedded in skill files
API key 'jcc_signup_a7K9mP2xQ8vL4nR6wT1yZ68' is hardcoded in relay-server/config.json (also committed to repo), config.example.json, and SKILL.md as built-in defaults. If relay is exposed beyond localhost, anyone with this key can POST registration data to the target Feishu bitable.
relay-server/config.json:1 Undeclared shell auto-heal with developer-specific hardcoded paths
Step 0.5 of SKILL.md implements auto-heal that silently starts the relay-server via PowerShell Start-Process. The code iterates hardcoded paths including 'C:\Users\聿\.qclaw\skills\fork-latte-skill\relay-server' — a path specific to the developer's Chinese-username Windows machine. This is undeclared, uses shell:WRITE level execution, and the developer-specific path makes it non-functional for other users while revealing internal structure.
SKILL.md:27 Declared bins do not match actual tool dependencies
SKILL.md metadata declares bins:["curl"] but the implementation exclusively uses PowerShell cmdlets (Invoke-RestMethod, Start-Process, Get-NetTCPConnection). macOS/Linux path uses curl, but the primary platform (Windows/OpenClaw) uses PowerShell — neither shell tool is declared in allowed-tools or bins.
SKILL.md:2 relay-server has unversioned dependencies
relay-server/package.json has no dependencies listed but uses Node.js built-ins only (http, fs/promises, child_process). No known vulnerabilities, but the package has no pinned versions for Node itself. server.js spawns lark-cli with shell:true which could be a supply chain risk if lark-cli is compromised.
relay-server/server.js:82 relay-server spawns external CLI tool lark-cli
When MODE=lark_cli, server.js spawns 'lark-cli' binary using spawn with shell:true. While this is documented, arbitrary CLI execution on the relay server host is a privilege escalation vector if the relay server is misconfigured.
relay-server/server.js:82 声明能力 vs 实际能力
SKILL.md: Reads config.json SKILL.md: Uses Invoke-RestMethod POST/GET; bins declares curl only SKILL.md step 0.5: Start-Process to launch relay-server; run-relay.ps1: while loop with Start-Process 可疑产物与外联
https://img.shields.io/gitee/v/tag/qidianjuzhen/agibar-invite-skill?label=version&color=blue&sort=semver README.md:3
https://img.shields.io/badge/api-REST-orange README.md:3
https://img.shields.io/badge/mode-lark__cli%20%7C%20feishu__api-blue README.md:3
https://gitee.com/qidianjuzhen/fork-latte-skill README.md:56
https://img.shields.io/badge/stack-Node.js%20%2B%20Feishu%20Bitable-green relay-server/README.md:3
https://open.feishu.cn relay-server/README.md:28
https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal relay-server/README.md:67
https://open.feishu.cn/open-apis/bitable/v1/apps/ relay-server/README.md:74
https://clawhub.ai/user/moljay skill-card.md:9
https://clawhub.ai/moljay/skills/fork-latte-skill skill-card.md:47
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| node | * | system | 否 | No package.json deps; only Node.js built-ins used (http, fs, child_process) |
| lark-cli | * | external_binary | 否 | Spawned as external binary when MODE=lark_cli; not pinned, shell:true used |
文件构成
relay-server/config.json relay-server/server.js SKILL.md relay-server/README.md README.md skill-card.md