Scan Report
This report was generated in Chinese. Some content may be in Chinese.
5 /100
nano-gpt
NanoGPT API 本地 CLI 包装器,支持文本、图像和视频生成的命令行工具
NanoGPT API 包装器 CLI,代码结构清晰,行为与文档声明一致,无恶意行为或阴影功能。base64 解码为合法 API 响应处理,硬编码凭证仅为测试夹具。
Safe to install
可直接使用。建议补充 allowedTools 声明以进一步提升透明度。
Findings 1 items
| Severity | Finding | Location |
|---|---|---|
| Info | 权限声明宽泛 Doc Mismatch | SKILL.md:1 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| 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
├─
▾
cli
│ ├─
▾
src
│ │ ├─
bin.ts
TypeScript
│ │ ├─
cli.ts
TypeScript
│ │ ├─
client.ts
TypeScript
│ │ ├─
config.ts
TypeScript
│ │ ├─
constants.ts
TypeScript
│ │ ├─
image-input.ts
TypeScript
│ │ ├─
messages.ts
TypeScript
│ │ ├─
stream.ts
TypeScript
│ │ └─
types.ts
TypeScript
│ ├─
▾
test
│ │ ├─
cli.test.ts
TypeScript
│ │ ├─
client.test.ts
TypeScript
│ │ ├─
config.test.ts
TypeScript
│ │ ├─
image-input.test.ts
TypeScript
│ │ ├─
messages.test.ts
TypeScript
│ │ ├─
stream.test.ts
TypeScript
│ │ └─
video-input.test.ts
TypeScript
│ ├─
package.json
JSON
│ └─
tsconfig.json
JSON
├─
▾
references
│ ├─
cli.md
Markdown
│ └─
workflows.md
Markdown
├─
▾
scripts
│ ├─
chat.sh
Shell
│ ├─
image.sh
Shell
│ ├─
models.sh
Shell
│ ├─
prompt.sh
Shell
│ ├─
resolve_nano_gpt_cli.sh
Shell
│ └─
video.sh
Shell
├─
package-lock.json
JSON
├─
package.json
JSON
├─
README.md
Markdown
└─
SKILL.md
Markdown
Dependencies 2 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
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 明确:禁止搜索文件系统上传媒体、要求用户显式提供路径