Back to skill

Security audit

Gitai - Git Commit Automation

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Git automation helper, but it can commit and push repository changes and uses external AI/API-key setup without enough scoping or safety warnings.

Review generated commits before allowing the skill to run gitai, avoid --push unless you explicitly intend to publish to the configured remote, do not use it on repositories containing secrets or sensitive proprietary code without approval, install the CLI only from a trusted and pinned source, and protect or rotate any API key stored in ~/.gitai.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:35
Finding

Unpinned Global Installation of an External CLI Dependency

Content
View full analysis
"The `gitai` CLI tool is not installed. Please install it globally (e.g., `npm install -g @notyped/gitai`) and configure it before using this skill." ``` The README also presents installation scripts that are not included in the audited project: ```markdown ### Installation **MacOS / Linux:** ```bash chmod +x scripts/install.sh ./scripts/install.sh ``` **Windows (PowerShell):** ```powershell .\scripts\install.ps1 ``` ``` ### Technical Analysis The documented npm command installs the latest available release of `@notyped/gitai` globally without pinning a reviewed version or verifying package integrity. Consequently, the dependency resolved at installation time may differ from the implementation that was originally reviewed. A global npm package may execute lifecycle scripts during installation and subsequently runs as a CLI with the permissions of the invoking user. The CLI's intended functions also require access to repository changes and Git operations. A malicious or compromised package release could therefore read source code, inspect accessible credentials, alter repository content, or execute arbitrary commands. The README separately refers to `scripts/install.sh` and `scripts/install.ps1`, but those files do not exist in the supplied project. Their content and security properties therefore cannot be audited. The skill appropriately tells the agent not to perform installation itself, which limits automated exploitation, but users are still directed toward an unpinned external installation. ### Attack Path 1. An attacker compromis ...[truncated 1407 chars]
Remediation
View remediation
``` 2. Publish and verify the expected package digest or npm integrity metadata through a trusted release channel. 3. Prefer a project-local or isolated installation over a global installation to reduce scope and avoid elevated installation privileges. 4. Document the authoritative npm registry and package ownership so users can detect dependency-confusion or registry-substitution attempts. 5. Review the package's lifecycle scripts, transitive dependencies, and CLI source before recommending a release. 6. Use lockfiles or an equivalent reproducible dependency mechanism where possible. 7. Include the referenced installation scripts in the repository so they can be audited, or remove those instructions. 8. Advise users not to use `sudo` or an administrator shell for installation unless strictly necessary. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
README.md:66
Finding

API Key Stored in a Plaintext Configuration File Without Permission Hardening

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README promotes AI analysis of staged changes but does not clearly warn that code diffs may be transmitted to third-party AI providers such as OpenAI, Anthropic, or Groq. This can lead users to unintentionally expose proprietary code, secrets, or regulated data to external services, especially in enterprise or private repositories.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README includes an automated commit-and-push example without a clear warning that the command will modify repository history and publish changes to a remote. In the context of an AI-driven tool, users may run convenience commands quickly and accidentally push incomplete, sensitive, or unreviewed changes to shared infrastructure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly advertises that it can stage, commit, and push changes in a single command, but it does not provide a strong, explicit warning that these actions modify repository state and may publish local changes to a remote. In an agent context, this is dangerous because users may invoke the skill expecting analysis or message generation, while the documented workflow can perform irreversible or externally visible actions such as creating commits and pushing to remotes.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The trigger phrases are broad, generic Git-related terms such as 'generate commit', 'git message', and 'auto commit' that could match ordinary user conversation and invoke the skill unexpectedly. In an automation skill that can act on version-control workflows, accidental activation can cause unintended commit generation or workflow interference, especially if the hosting agent routes by trigger text alone.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The manifest frames the skill as a Git automation tool for analyzing code changes and generating semantic Conventional Commits. In the README, the documented workflow includes not just analysis and commit creation but also pushing to remote repositories via --push, which expands the behavior from message generation into remote repository modification.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest description is very broad and markets the skill as a general Git/AI automation tool without defining when it should activate or what repository contexts it should be used in. Overly broad activation language can cause a skill to be invoked in unintended contexts, increasing the chance it processes sensitive diffs, commit history, or repository content beyond what a user expects.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.