Back to skill

Security audit

smart-git

Security checks across malware telemetry and agentic risk

Overview

This skill is a legitimate Git automation workflow, but its defaults can automatically publish, approve, and merge code changes with limited per-action user control.

Install only if you are comfortable with an agent-driven Git workflow that can change repository state. Before live use, review smart-commit.host-agent.json and strongly consider setting pullRequestReview.autoApprove, pullRequestReview.autoMerge, git.autoPush, and pullRequestCreation.autoCreateAfterPush to false; use dry-run for reviews and batch reviews until you confirm the behavior fits your repository policies.

Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (20)

Intent-Code Divergence

Medium
Confidence
94% confidence
Finding
The config enables automatic staging, committing, and pushing, which are write operations with external side effects. In a skill intended for review and PR workflows, this can cause unintended repository changes or remote publication without an explicit per-action confirmation, especially if invoked in the wrong context or on sensitive branches.

Intent-Code Divergence

High
Confidence
97% confidence
Finding
Enabling both autoApprove and autoMerge turns a review flow into an autonomous code-integration mechanism. If the review model misses issues, is prompt-influenced, or is triggered on the wrong PR, unsafe changes can be approved and merged without meaningful human oversight.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill instructs the agent to automatically perform a global package installation without first obtaining explicit user consent. Installing software globally changes the host environment, can execute package lifecycle scripts, and expands blast radius if the package or registry path is compromised.

Vague Triggers

Medium
Confidence
91% confidence
Finding
Broad automatic git actions are enabled without visible trigger constraints in this file, so ordinary use of the skill may cause file staging, commits, and pushes even when the user intended only analysis. This increases the risk of accidental exfiltration of local changes or publishing incomplete or sensitive work.

Missing User Warnings

High
Confidence
95% confidence
Finding
Automatic commit and push are high-impact side effects, yet this config provides no in-file user-facing warning or consent mechanism. Users may invoke the skill expecting review assistance and instead cause irreversible repository history changes or push data to a remote.

Missing User Warnings

High
Confidence
96% confidence
Finding
The configuration automatically creates a pull request after push and removes the source branch, both of which are destructive or externally visible actions. Without prominent disclosure and confirmation, users can unintentionally publish work and lose an active branch needed for recovery or further edits.

Missing User Warnings

High
Confidence
98% confidence
Finding
Automatic approval and merge are among the highest-risk repository actions because they can finalize unreviewed or malicious code changes. The lack of visible disclosure or consent makes accidental or covert workflow escalation much more likely.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
| Field | Default | One-line meaning |
|-------|---------|------------------|
| pullRequestReview.threshold | 6 | Only existing PR/MR (including batch) review: score must be strictly greater than this; does not affect local / Create PR/MR |
| pullRequestReview.autoApprove | true | Whether to auto-approve after a passing review |
| pullRequestReview.autoMerge | true | Whether to auto-merge after a passing review (risky) |
| pullRequestReview.summarySeverities | ["P0","P1"] | Which severities are written into the summary comment |
| pullRequestReview.commentSeverities | ["P0","P1"] | Which severities are posted as inline comments |
Confidence
97% confidence
Finding
This finding refers to the same risky behavior at the same location: automated approval/merge after a passing review. In the context of a git automation skill, this is more dangerous because the documented flow is designed to take real actions against live PR/MR systems, so an overly trusting review threshold can directly change repository state.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
| Field | Default | One-line meaning |
|-------|---------|------------------|
| pullRequestReview.threshold | 6 | Only existing PR/MR (including batch) review: score must be strictly greater than this; does not affect local / Create PR/MR |
| pullRequestReview.autoApprove | true | Whether to auto-approve after a passing review |
| pullRequestReview.autoMerge | true | Whether to auto-merge after a passing review (risky) |
| pullRequestReview.summarySeverities | ["P0","P1"] | Which severities are written into the summary comment |
| pullRequestReview.commentSeverities | ["P0","P1"] | Which severities are posted as inline comments |
Confidence
97% confidence
Finding
This finding refers to the same risky behavior at the same location: automated approval/merge after a passing review. In the context of a git automation skill, this is more dangerous because the documented flow is designed to take real actions against live PR/MR systems, so an overly trusting review threshold can directly change repository state.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
## Personal config (diverse needs)

Recommended: edit smart-commit.host-agent.json next to this skill.
Stricter review, switch to GitHub, default assignees/reviewers, a different review skill, disable auto-approve/merge, disable auto-push, etc. all live in that file; you do not need to change SKILL.md.

Out-of-box defaults (see CONFIG.md):
Confidence
85% confidence
Finding
The setup explicitly advertises support for disabling auto-approve/merge, which implies those capabilities exist and may be enabled elsewhere in the skill. In the context of a code-hosting workflow, autonomous approval and merge can let an agent finalize changes without meaningful human review, increasing the chance of unsafe, low-quality, or malicious code being merged.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
| pullRequest.provider | auto |
| commitMessage.validation.protocol | none |
| commitMessage.scope | forbidden |
| pullRequestReview.autoApprove | true |
| pullRequestReview.autoMerge | true |
| pullRequestReview.summarySeverities | ["P0","P1"] |
| myPullRequest.listScope | account |
Confidence
98% confidence
Finding
This line states that pullRequestReview.autoApprove and pullRequestReview.autoMerge default to true, meaning the skill is configured out of the box to autonomously approve and merge pull requests. In a privileged repository context, that can directly bypass human oversight and push harmful or defective changes into protected branches.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
| Repo-level create/review overlay | pullRequestCreation.configFilePath, pullRequestReview.configFilePath (absolute / relative, comma-mixable) |
| Extra short instructions for PR/MR review only | pullRequestReview.skillPromptTuning (overrides review.skill.promptTuning) |
| Whether to create an MR after push | pullRequestCreation.autoCreateAfterPush |
| Disable auto-approve / merge | pullRequestReview.autoApprove / autoMerge to false |
| Include P2 in summaries | add P2 to pullRequestReview.summarySeverities |
| Whether to auto commit/push | git.autoCommit, git.autoPush |
Confidence
90% confidence
Finding
The configuration reference again indicates support for autoApprove/autoMerge controls, reinforcing that the skill can take repository-governing actions on its own. In this skill context, that is more dangerous than generic automation because the same tool also handles review and PR/MR lifecycle operations, concentrating authority in one agent-driven workflow.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
| Repo-level create/review overlay | pullRequestCreation.configFilePath, pullRequestReview.configFilePath (absolute / relative, comma-mixable) |
| Extra short instructions for PR/MR review only | pullRequestReview.skillPromptTuning (overrides review.skill.promptTuning) |
| Whether to create an MR after push | pullRequestCreation.autoCreateAfterPush |
| Disable auto-approve / merge | pullRequestReview.autoApprove / autoMerge to false |
| Include P2 in summaries | add P2 to pullRequestReview.summarySeverities |
| Whether to auto commit/push | git.autoCommit, git.autoPush |
Confidence
90% confidence
Finding
The configuration reference again indicates support for autoApprove/autoMerge controls, reinforcing that the skill can take repository-governing actions on its own. In this skill context, that is more dangerous than generic automation because the same tool also handles review and PR/MR lifecycle operations, concentrating authority in one agent-driven workflow.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
#### 2.3 When nothing is found: default automatic global install

Run only when 2.2 missed all candidates (do not ask the user whether to install): globally install package smart-commit-host-agent.
After install, re-check the global command on PATH (exists, version, help). If recheck passes and subcommands are complete, prefix is smart-commit-host-agent; note auto global install this turn, then continue. Recheck fails: go to 2.4.

Forbidden: forcing a global install when 2.2 already found a usable CLI; forging an unverified path after a failed install; hiding an install failure; using elevated privileges for global install unless the user explicitly asked this turn.
Confidence
96% confidence
Finding
The instruction to 'do not ask the user whether to install' authorizes autonomous environment modification. Even without obvious malice, this removes an important consent checkpoint before executing a high-impact action with supply-chain and system-integrity implications.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
This skill runs independently: it does not call or hand off to other skills.

Behavior is configurable: review threshold, review skill, commit message, Git auto-commit/push, PR/MR platform, assignees/reviewers/labels/milestone/draft, review comments and approve/merge, etc. are all controlled by the colocated smart-commit.host-agent.json. Out-of-box defaults: pullRequest.provider=auto; commitMessage.scope is forbidden; commitMessage.validation.protocol is none; pullRequestReview.autoApprove / autoMerge are true; summarySeverities is ["P0","P1"]; myPullRequest.listScope=account; myPullRequest.remoteHost="" (empty; if empty, ask before listing against public gitlab.com/github.com for self-hosted GitLab). Users adapt by editing that file; no skill changes required. review.skill / commitMessage.skill are host-agent built-in templates, not other agent skills. See [CONFIG.md](CONFIG.md) and [SETUP.md](SETUP.md).

At these times, the Agent should remind the user in one or two sentences that they can edit this config (do not paste the full JSON, do not restate the token):
Confidence
90% confidence
Finding
The documented default configuration enables automatic approval and merge operations on PRs/MRs. In a code-review context, that allows the agent to make governance-changing decisions and potentially merge flawed or malicious changes without a deliberate user confirmation at review time.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
Must have at least one PR/MR URL (GitHub .../pull/N or GitLab .../merge_requests/N). No URL: ask.

Default-config impact (know this before a live review): in the colocated smart-commit.host-agent.json, pullRequest.provider defaults to auto; pullRequestReview.autoApprove / autoMerge default to true; summarySeverities defaults to ["P0","P1"]. So a live pull-request review may auto-approve and merge after a passing review. When the user has not changed the config:

- Add --dry-run only if the user explicitly asks for dry-run / a trial / no publish / no merge
- If the user clearly does not want auto-merge/approve: tell them to set those config fields to false and re-run (the Agent does not edit the config file)
Confidence
94% confidence
Finding
The same section explicitly contemplates automatic approval behavior during review, which is an autonomous decision affecting repository policy and code promotion. Because approval can satisfy branch protection or reviewer requirements, the action has meaningful security and process impact.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
Must have at least one PR/MR URL (GitHub .../pull/N or GitLab .../merge_requests/N). No URL: ask.

Default-config impact (know this before a live review): in the colocated smart-commit.host-agent.json, pullRequest.provider defaults to auto; pullRequestReview.autoApprove / autoMerge default to true; summarySeverities defaults to ["P0","P1"]. So a live pull-request review may auto-approve and merge after a passing review. When the user has not changed the config:

- Add --dry-run only if the user explicitly asks for dry-run / a trial / no publish / no merge
- If the user clearly does not want auto-merge/approve: tell them to set those config fields to false and re-run (the Agent does not edit the config file)
Confidence
94% confidence
Finding
The same section explicitly contemplates automatic approval behavior during review, which is an autonomous decision affecting repository policy and code promotion. Because approval can satisfy branch protection or reviewer requirements, the action has meaningful security and process impact.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
- Needs a platform token (same as shared prerequisite 3.1)
- Defaults from config: listScope, batchReviewKinds, remoteHost (do not use listKinds as the batch filter)

Default-config impact (know this before a live batch review): in the colocated config, pullRequestReview.autoApprove / autoMerge default to true. Batch items that pass may also be auto-approved and merged. When the user has not changed the config:

- Add --dry-run only if the user explicitly asks for dry-run / a trial / no publish / no merge
- If the user clearly does not want auto-merge/approve: tell them to set those config fields to false and re-run (the Agent does not edit the config file)
Confidence
95% confidence
Finding
Automatic approval in batch mode is an autonomous governance action applied repeatedly across multiple change sets. In the context of a git automation skill, this is especially dangerous because one ambiguous user request can cause widespread repository approvals or merges.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
- Needs a platform token (same as shared prerequisite 3.1)
- Defaults from config: listScope, batchReviewKinds, remoteHost (do not use listKinds as the batch filter)

Default-config impact (know this before a live batch review): in the colocated config, pullRequestReview.autoApprove / autoMerge default to true. Batch items that pass may also be auto-approved and merged. When the user has not changed the config:

- Add --dry-run only if the user explicitly asks for dry-run / a trial / no publish / no merge
- If the user clearly does not want auto-merge/approve: tell them to set those config fields to false and re-run (the Agent does not edit the config file)
Confidence
95% confidence
Finding
Automatic approval in batch mode is an autonomous governance action applied repeatedly across multiple change sets. In the context of a git automation skill, this is especially dangerous because one ambiguous user request can cause widespread repository approvals or merges.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
},
    "pullRequestReview": {
      "threshold": 6,
      "autoApprove": true,
      "autoMerge": true,
      "summarySeverities": ["P0", "P1"],
      "commentSeverities": ["P0", "P1"],
Confidence
95% confidence
Finding
autoApprove delegates a security-sensitive repository decision to automation. In the context of a skill that can review PRs, this is dangerous because model errors, ambiguous triggers, or adversarial PR content can result in unauthorized approval of harmful changes.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

Detected: suspicious.exposed_secret_literal, suspicious.generated_source_template_injection

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
SKILL.md:169

User-controlled placeholder is embedded directly into generated source code.

Critical
Code
suspicious.generated_source_template_injection
Location
SKILL.md:106