可信 — 风险评分 5/100
上次扫描:4 小时前 重新扫描
5 /100
nano-gpt
NanoGPT API 本地 CLI 包装器,支持文本、图像和视频生成的命令行工具
NanoGPT API 包装器 CLI,代码结构清晰,行为与文档声明一致,无恶意行为或阴影功能。base64 解码为合法 API 响应处理,硬编码凭证仅为测试夹具。
技能名称nano-gpt
分析耗时36.8s
引擎pi
ClawHub Nano Gpt v0.1.2 by icework
📥 277
ClawHub 判定 可疑 potential_exfiltration
可以安装
可直接使用。建议补充 allowedTools 声明以进一步提升透明度。

安全发现 1 项

严重性 安全发现 位置
提示
权限声明宽泛 文档欺骗
SKILL.md 未显式声明 filesystem:WRITE 能力(通过 --output 写入文件),也未声明 environment:READ(NANO_GPT_* 变量)。这些能力有合理解释,但声明不够精确。
--output on scripts/image.sh when a file artifact is required
→ 在 SKILL.md 中明确声明 filesystem:WRITE(输出文件)和 environment:READ(NANO_GPT_API_KEY 等)的使用场景
SKILL.md:1
资源类型声明权限推断权限状态证据
网络访问 READ READ ✓ 一致 SKILL.md: 所有请求发往 nano-gpt.com,client.ts: makeUrl() 仅拼接路径
文件系统 READ_WRITE WRITE ✓ 一致 cli.ts: persistImageOutput/persistVideoOutput 调用 writeFile;SKILL.md: --output 标志
环境变量 READ READ ✓ 一致 config.ts: mergeConfig() 读取 NANO_GPT_* 前缀环境变量,范围明确
命令执行 NONE NONE scripts/*.sh 仅调用本地 nano-gpt 二进制,无管道/RCE
1 严重 1 高危 10 项发现
🔒
严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(image.b64_json, "base64"
cli/src/cli.ts:551
🔑
高危 API 密钥 疑似硬编码凭证
apiKey: "abcdefgh12345678"
cli/test/config.test.ts:40
🔗
中危 外部 URL 外部 URL
https://docs.nano-gpt.com/
README.md:7
🔗
中危 外部 URL 外部 URL
https://nano-gpt.com
README.md:45
🔗
中危 外部 URL 外部 URL
https://cdn.example/video.mp4
cli/test/cli.test.ts:41
🔗
中危 外部 URL 外部 URL
https://proxy.example/api
cli/test/client.test.ts:33
🔗
中危 外部 URL 外部 URL
https://proxy.example/api/v1/models
cli/test/client.test.ts:47
🔗
中危 外部 URL 外部 URL
https://file.example
cli/test/config.test.ts:14
🔗
中危 外部 URL 外部 URL
https://env.example/
cli/test/config.test.ts:22
🔗
中危 外部 URL 外部 URL
https://env.example
cli/test/config.test.ts:35

目录结构

31 文件 · 74.4 KB · 2756 行
TypeScript 16f · 2261L Markdown 4f · 294L JSON 4f · 142L Shell 6f · 55L YAML 1f · 4L
├─ 📁 agents
│ └─ 📋 openai.yaml YAML 4L · 377 B
├─ 📁 cli
│ ├─ 📁 src
│ │ ├─ 📜 bin.ts TypeScript 12L · 279 B
│ │ ├─ 📜 cli.ts TypeScript 747L · 20.7 KB
│ │ ├─ 📜 client.ts TypeScript 213L · 5.6 KB
│ │ ├─ 📜 config.ts TypeScript 191L · 5.4 KB
│ │ ├─ 📜 constants.ts TypeScript 5L · 256 B
│ │ ├─ 📜 image-input.ts TypeScript 344L · 8.5 KB
│ │ ├─ 📜 messages.ts TypeScript 55L · 1.1 KB
│ │ ├─ 📜 stream.ts TypeScript 78L · 2.0 KB
│ │ └─ 📜 types.ts TypeScript 130L · 2.4 KB
│ ├─ 📁 test
│ │ ├─ 📜 cli.test.ts TypeScript 49L · 1.2 KB
│ │ ├─ 📜 client.test.ts TypeScript 157L · 4.2 KB
│ │ ├─ 📜 config.test.ts TypeScript 44L · 1.3 KB
│ │ ├─ 📜 image-input.test.ts TypeScript 76L · 2.7 KB
│ │ ├─ 📜 messages.test.ts TypeScript 62L · 2.2 KB
│ │ ├─ 📜 stream.test.ts TypeScript 32L · 864 B
│ │ └─ 📜 video-input.test.ts TypeScript 66L · 2.3 KB
│ ├─ 📋 package.json JSON 27L · 510 B
│ └─ 📋 tsconfig.json JSON 25L · 443 B
├─ 📁 references
│ ├─ 📝 cli.md Markdown 35L · 1021 B
│ └─ 📝 workflows.md Markdown 50L · 1.0 KB
├─ 📁 scripts
│ ├─ 🔧 chat.sh Shell 6L · 152 B
│ ├─ 🔧 image.sh Shell 6L · 153 B
│ ├─ 🔧 models.sh Shell 6L · 154 B
│ ├─ 🔧 prompt.sh Shell 6L · 154 B
│ ├─ 🔧 resolve_nano_gpt_cli.sh Shell 26L · 497 B
│ └─ 🔧 video.sh Shell 5L · 152 B
├─ 📋 package-lock.json JSON 76L · 2.1 KB
├─ 📋 package.json JSON 14L · 249 B
├─ 📝 README.md Markdown 80L · 2.5 KB
└─ 📝 SKILL.md Markdown 129L · 4.0 KB

依赖分析 2 项

包名版本来源已知漏洞备注
commander ^14.0.1 npm 仅一个运行时依赖,版本范围宽松但风险极低
typescript ^5.8.2 npm devDependencies,仅用于构建

安全亮点

✓ 所有网络请求均发往 nano-gpt.com(默认)或用户显式配置的 base-url,无未知 IP 请求
✓ 凭证仅通过 Bearer Token 随请求头发送,不存在凭证外泄
✓ base64 解码仅用于处理 API 返回的图片数据(b64_json),为合法用途
✓ 测试文件中的硬编码凭证 'abcdefgh12345678' 为测试夹具,非真实密钥
✓ config.ts 有 redactSecret() 脱敏函数,防止配置文件中的密钥明文暴露
✓ 无 shell 执行、无 eval、无 eval(atob()) 等危险模式
✓ 无供应链攻击风险(仅依赖 commander ^14,无版本锁定问题极小)
✓ guardrails 明确:禁止搜索文件系统上传媒体、要求用户显式提供路径