扫描报告
40 /100
wip-readme-format
Reformat any repo's README to follow the WIP Computer standard. Agent-first, human-readable.
README格式化工具存在文档-行为差异:声明filesystem权限为NONE但实际执行WRITE操作,同时动态导入child_process模块执行git命令检查文件状态。
谨慎使用
补充声明filesystem:WRITE和可能的shell:READ权限;考虑使用显式导入替代动态导入child_process;添加依赖模块wip-universal-installer的来源验证。
安全发现 4 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 中危 | 未声明的文件系统写入权限 权限提升 | format.mjs:310 |
| 中危 | 动态导入child_process模块 代码混淆 | format.mjs:322 |
| 低危 | 外部依赖模块来源未声明 供应链 | format.mjs:27 |
| 低危 | shields.io外部URL引用 文档欺骗 | format.mjs:82 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | NONE | WRITE | ✗ 越权 | format.mjs:310 writeFileSync写入README-init-*.md, format.mjs:370 writeFileSync写入RE… |
| 命令执行 | NONE | READ | ✗ 越权 | format.mjs:322 await import('node:child_process'), format.mjs:334 execSync('git … |
| 网络访问 | NONE | READ | ✓ 一致 | 仅生成shields.io badge URLs,无实际HTTP请求 |
| 技能调用 | NONE | NONE | — | 导入外部模块detectInterfaces但仅用于检测接口类型 |
2 项发现
中危 外部 URL 外部 URL
https://img.shields.io/badge/interface-$ format.mjs:82 中危 外部 URL 外部 URL
https://img.shields.io/badge/Universal_Interface_Spec-black?style=flat&color=black format.mjs:506 目录结构
4 文件 · 24.4 KB · 745 行 JavaScript 1f · 597L
Markdown 2f · 133L
JSON 1f · 15L
├─
format.mjs
JavaScript
├─
package.json
JSON
├─
README.md
Markdown
└─
SKILL.md
Markdown
依赖分析 4 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
wip-universal-installer/detect.mjs | unknown | local sibling module | 否 | 内部依赖,来源为同仓库tools目录 |
node:fs | bundled | node built-in | 否 | Node.js标准库,用于文件读写 |
node:path | bundled | node built-in | 否 | Node.js标准库,用于路径处理 |
node:child_process | bundled | node built-in | 否 | 动态导入,用于git status命令执行 |
安全亮点
✓ 代码结构清晰,主要功能为纯文本处理和文件生成
✓ 包含dry-run和--check模式,允许预览和验证而不实际写入
✓ DEPLOY模式有安全检查:阻止未审查的init文件直接部署
✓ 自动备份旧文件到ai/_trash/目录,防止数据丢失
✓ 无凭证读取、无数据外传、无网络主动请求
✓ 依赖简单(Node.js标准库为主),攻击面较小