跳转到正文
报告库
用途分类 / 开发辅助

Git Commit Skill 安全审计

作者说它能做什么(原文)

Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file stagin

第三方安全检查结论

发现安全风险

已检查文件
1
发现的风险
2
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。发现 1 项风险
中风险

提交会运行仓库配置的 Git 钩子代码

原文依据:2 处
发现了什么

技能要求执行 `git commit`,并明确规定通常不得使用 `--no-verify`,还要求在钩子失败后修复问题。这表明提交钩子属于预期执行路径。钩子由当前仓库或本机 Git 环境提供,其具体代码未包含在本次材料中。

为什么需要注意

如果用户在不可信仓库中运行该技能,恶意或被篡改的提交钩子可能以用户权限执行命令,读取可访问的文件或凭据,并修改本机或工作区。现有证据不能说明此类恶意钩子确实存在。

技能主动执行 `git commit`,且规定除非用户要求不得用 `--no-verify`,所以正常情况下会允许适用的 Git 提交钩子运行。若仓库或本机配置了恶意或意外的钩子,它们可在提交过程中执行命令并影响文件或凭据;材料未提供任何钩子代码,因此不能判断实际行为。用户可先要求列出并审查适用钩子,或在不受信任的仓库中限制执行权限。

SKILL.md:93来自说明文档打开原文件
### 4. Execute Commit```bash# Single linegit commit -m "<type>[scope]: <description>"
查看另外 1 个位置
SKILL.md:122来自说明文档打开原文件
- NEVER run destructive commands (--force, hard reset) without explicit request- NEVER skip hooks (--no-verify) unless user asks- NEVER force push to main/master- If commit fails due to hooks, fix and create NEW commit (don't amend)
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。未发现风险
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。发现 1 项风险
中风险

通配符暂存可能把未审阅或敏感文件写入 Git 历史

原文依据:4 处
发现了什么

工作流允许使用通配符执行 `git add`,但此前的 `git diff` 不显示未跟踪文件的内容,而 `git status --porcelain` 通常只显示其路径。因此,匹配范围内的新文件可能在内容未被审阅时进入暂存区。虽然文档写明“不得提交密钥”,所示流程没有要求在提交前重新检查完整的暂存差异。

为什么需要注意

若通配符命中凭据、生成物或其他无关文件,这些内容会被纳入提交,并可能在以后推送时进入远程仓库;即使随后删除,也可能仍留在 Git 历史中。

该流程先用 `git diff` 查看工作区改动,但该命令不展示未跟踪文件的内容;随后允许按通配符暂存文件。因此,匹配到的新文件可能在只看到路径、未审阅内容的情况下被加入提交。文档虽明确禁止提交密钥,但没有要求在提交前再次检查完整的暂存差异。用户可要求仅按明确文件列表暂存,并在提交前审阅 `git diff --staged`。

SKILL.md:60来自说明文档打开原文件
# If nothing staged, use working tree diffgit diff# Also check statusgit status --porcelain```
查看另外 3 个位置
SKILL.md:75来自说明文档打开原文件
# Stage by patterngit add *.test.*git add src/components/*
SKILL.md:83来自说明文档打开原文件
**Never commit secrets** (.env, credentials.json, private keys).
SKILL.md:93来自说明文档打开原文件
### 4. Execute Commit```bash# Single linegit commit -m "<type>[scope]: <description>"
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。未发现风险
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

7 个说明模块

该技能会先检查暂存区或工作区差异及仓库状态,然后选择文件加入暂存区,生成 Conventional Commit 消息并执行本地提交。

查看原文
SKILL.md:56来自说明文档打开原文件
```bash# If files are staged, use staged diffgit diff --staged# If nothing staged, use working tree diffgit diff# Also check statusgit status --porcelain```
SKILL.md:93来自说明文档打开原文件
### 4. Execute Commit```bash# Single linegit commit -m "<type>[scope]: <description>"

它明确禁止修改 Git 配置、未经请求执行破坏性命令、擅自绕过钩子或强推主分支,并提醒不得提交密钥。

查看原文
SKILL.md:83来自说明文档打开原文件
**Never commit secrets** (.env, credentials.json, private keys).
SKILL.md:118来自说明文档打开原文件
## Git Safety Protocol- NEVER update git config- NEVER run destructive commands (--force, hard reset) without explicit request- NEVER skip hooks (--no-verify) unless user asks- NEVER force push to main/master- If commit fails due to hooks, fix and create NEW commit (don't amend)
从这里开始 · 工作说明SKILL.md
git-commit
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。
文件与检查记录1 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明

代码和说明中提到的操作

运行命令
SKILL.md:5来自说明文档打开原文件
license: MITallowed-tools: Bash---
SKILL.md:56来自说明文档打开原文件
```bash# If files are staged, use staged diff
SKILL.md:71来自说明文档打开原文件
```bash# Stage specific files
读取密钥或账号配置
SKILL.md:83来自说明文档打开原文件
**Never commit secrets** (.env, credentials.json, private keys).
读取文件
SKILL.md:100来自说明文档打开原文件
# Multi-line with body/footergit commit -m "$(cat <<'EOF'<type>[scope]: <description>
读取了多少行
125
文件校验值(用于核对版本)
b25cdbd3f3d53d6c3a28f4c786d668e97fe8a8850d078987871e4f34fcd600bc