安全决策报告

fork-latte-skill

功能合法的报名收集工具,但存在权限声明与实际能力不符(文档未声明shell权限但实际使用)、硬编码开发者路径和API Key等文档透明度问题。

安装决策优先 来源: ClawHub 扫描时间: 18 天前
文件 8
IOC 6
越权项 1
发现 4
最直接的威胁证据

为什么得出这个结论

1/4 个维度触发
阻止
声明与实际能力

发现 1 项声明之外的能力或越权行为。

复核
隐藏执行与外联

提取到 6 个一般风险产物,需要结合上下文判断。

通过
攻击链与高危发现

没有形成明确的恶意路径。

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

风险分是怎么被拉高的

权限声明与实际不符 +15

SKILL.md未声明shell权限,但步骤0.5和步骤3-4使用PowerShell exec发送HTTP请求和Start-Process启动进程

硬编码开发者路径 +8

步骤0.5硬编码了C:\Users\聿\...路径,暴露开发者用户名和目录结构

硬编码API Key +5

内置默认api_key=jcc_signup_a7K9mP2xQ8vL4nR6wT1yZ68,虽非敏感凭证但应移除默认配置

lark-cli外部命令执行 +5

server.js使用spawn('lark-cli', args, {shell:true})执行外部CLI工具

最关键的证据

中危 文档欺骗

shell权限未声明但实际使用

SKILL.md未在metadata.requires中声明shell/exec权限,但步骤0.5使用PowerShell的Invoke-RestMethod发送HTTP请求、Start-Process启动进程、Get-NetTCPConnection检查端口。这是CLI工具的正常用法,但文档透明度不足。

SKILL.md:37
在metadata.requires中添加bins声明或说明使用shell工具执行HTTP请求和进程管理
中危 敏感访问

硬编码开发者路径暴露用户信息

步骤0.5中硬编码了C:\Users\聿\...路径,暴露了开发者用户名聿和目录结构。虽注释解释是为了解决中文路径编码问题,但此路径不应出现在公开发布的skill中。

SKILL.md:43
移除硬编码路径,改用相对路径或环境变量检测
低危 凭证窃取

内置默认API Key

config.json和SKILL.md中内置了默认api_key=jcc_signup_a7K9mP2xQ8vL4nR6wT1yZ68,虽为relay服务认证key非飞书凭证,但不应有默认值。

relay-server/config.json:1
移除默认API Key,要求用户必须配置
低危 代码执行

server.js执行外部lark-cli命令

server.js使用spawn('lark-cli', args, {shell:true})执行外部CLI工具进行飞书表格操作。这是feishu_api模式的功能前置条件,但对于无lark-cli环境的用户可能意外触发错误。

relay-server/server.js:69
确保在MODE=lark_cli时才调用lark-cli,当前代码已正确隔离

声明能力 vs 实际能力

命令执行 阻止
声明 NONE
推断 WRITE
SKILL.md:1 (metadata未声明) vs SKILL.md:37-45 (PowerShell exec使用)
文件系统 通过
声明 READ
推断 READ
SKILL.md读取config.json
网络访问 通过
声明 READ
推断 WRITE
SKILL.md声明POST但实际只发往预配置endpoint

可疑产物与外联

中危 外部 URL
https://img.shields.io/badge/mode-lark__cli%20%7C%20feishu__api-blue

relay-server/README.md:3

中危 外部 URL
https://img.shields.io/badge/stack-Node.js%20%2B%20Feishu%20Bitable-green

relay-server/README.md:3

中危 外部 URL
https://img.shields.io/badge/api-REST-orange

relay-server/README.md:3

中危 外部 URL
https://open.feishu.cn

relay-server/README.md:28

中危 外部 URL
https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal

relay-server/README.md:67

中危 外部 URL
https://open.feishu.cn/open-apis/bitable/v1/apps/

relay-server/README.md:74

依赖与供应链

包名版本来源漏洞备注
node:http built-in Node.js标准库 无外部依赖
node:fs/promises built-in Node.js标准库 无外部依赖
node:child_process built-in Node.js标准库 无外部依赖

文件构成

8 个文件 · 695 行
Markdown 3 个文件 · 418 行JavaScript 1 个文件 · 239 行Other 1 个文件 · 28 行JSON 3 个文件 · 10 行
需关注文件 · 4
relay-server/config.json JSON · 1 行
内置默认API Key
relay-server/server.js JavaScript · 239 行
server.js执行外部lark-cli命令
SKILL.md Markdown · 147 行
shell权限未声明但实际使用 · 硬编码开发者路径暴露用户信息
relay-server/README.md Markdown · 124 行
https://img.shields.io/badge/mode-lark__cli%20%7C%20feishu__api-blue · https://img.shields.io/badge/stack-Node.js%20%2B%20Feishu%20Bitable-green · https://img.shields.io/badge/api-REST-orange · https://open.feishu.cn · https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal · https://open.feishu.cn/open-apis/bitable/v1/apps/
其他文件 · README.md · run-relay.ps1 · package.json · config.example.json

安全亮点

飞书凭证分离设计合理:客户端不接触飞书token,只与本地relay通信
支持覆盖/新增两种模式,逻辑完整
使用API Key保护relay服务端防滥用
package.json无第三方依赖,仅使用Node.js标准库
.env被gitignore保护,敏感配置不进仓库