This report was generated in Chinese. Some content may be in Chinese.
Trusted — Risk Score 5/100
Last scan:4 hr ago Rescan
5 /100
nano-gpt
NanoGPT API 本地 CLI 包装器,支持文本、图像和视频生成的命令行工具
NanoGPT API 包装器 CLI,代码结构清晰,行为与文档声明一致,无恶意行为或阴影功能。base64 解码为合法 API 响应处理,硬编码凭证仅为测试夹具。
Skill Namenano-gpt
Duration36.8s
Enginepi
ClawHub Nano Gpt v0.1.2 by icework
📥 277
ClawHub Verdict Suspicious potential_exfiltration
Safe to install
可直接使用。建议补充 allowedTools 声明以进一步提升透明度。

Findings 1 items

Severity Finding Location
Info
权限声明宽泛 Doc Mismatch
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
ResourceDeclaredInferredStatusEvidence
Network READ READ ✓ Aligned SKILL.md: 所有请求发往 nano-gpt.com,client.ts: makeUrl() 仅拼接路径
Filesystem READ_WRITE WRITE ✓ Aligned cli.ts: persistImageOutput/persistVideoOutput 调用 writeFile;SKILL.md: --output 标志
Environment READ READ ✓ Aligned config.ts: mergeConfig() 读取 NANO_GPT_* 前缀环境变量,范围明确
Shell NONE NONE scripts/*.sh 仅调用本地 nano-gpt 二进制,无管道/RCE
1 Critical 1 High 10 findings
🔒
Critical Encoded Execution Base64 编码执行(代码混淆)
Buffer.from(image.b64_json, "base64"
cli/src/cli.ts:551
🔑
High API Key 疑似硬编码凭证
apiKey: "abcdefgh12345678"
cli/test/config.test.ts:40
🔗
Medium External URL 外部 URL
https://docs.nano-gpt.com/
README.md:7
🔗
Medium External URL 外部 URL
https://nano-gpt.com
README.md:45
🔗
Medium External URL 外部 URL
https://cdn.example/video.mp4
cli/test/cli.test.ts:41
🔗
Medium External URL 外部 URL
https://proxy.example/api
cli/test/client.test.ts:33
🔗
Medium External URL 外部 URL
https://proxy.example/api/v1/models
cli/test/client.test.ts:47
🔗
Medium External URL 外部 URL
https://file.example
cli/test/config.test.ts:14
🔗
Medium External URL 外部 URL
https://env.example/
cli/test/config.test.ts:22
🔗
Medium External URL 外部 URL
https://env.example
cli/test/config.test.ts:35

File Tree

31 files · 74.4 KB · 2756 lines
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

Dependencies 2 items

PackageVersionSourceKnown VulnsNotes
commander ^14.0.1 npm No 仅一个运行时依赖,版本范围宽松但风险极低
typescript ^5.8.2 npm No devDependencies,仅用于构建

Security Positives

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