Back to skill

Security audit

git-platform

Security checks for vulnerabilities and agentic risk

Overview

This is a Markdown-only git forge command reference that is purpose-aligned and does not include hidden execution, persistence, or credential collection.

Install this if you want agents to choose GitHub, GitLab, or Bitbucket commands correctly. Review agent actions before allowing commands that create, close, merge, approve, comment on, or update remote repository resources, especially in repositories where those actions affect public or business-critical content.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (10)

Ae1

High
Category
analysis-evasion
Content
For Bitbucket: No standard CLI exists. Use REST API (`curl`) or the web interface. See [command-mapping module](modules/command-mapping.md) for API equivalents.
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
For Bitbucket: No standard CLI exists. Use REST API (`curl`) or the web interface. See [command-mapping module](modules/command-mapping.md) for API equivalents.
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger list includes broad terms such as "git," "platform," and "github/gitlab/bitbucket," which can cause the skill to activate in many unrelated contexts. In an agent environment, overbroad activation increases the chance that this skill influences workflows where forge detection or command remapping was not intended, potentially steering actions toward remote-platform operations or cross-skill context leakage.

External Transmission

Medium
Category
Data Exfiltration
Content
| Operation | GitHub (`gh`) | GitLab (`glab`) | Bitbucket (REST API) |
|-----------|---------------|-----------------|----------------------|
| View | `gh issue view N --json title,body,labels,assignees,comments` | `glab issue view N` | `curl -s "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues/N"` |
| List | `gh issue list --json number,title` | `glab issue list` | `curl -s "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues"` |
| Create | `gh issue create --title "T" --body "B"` | `glab issue create --title "T" --description "B"` | `curl -X POST -d '{"title":"T","content":{"raw":"B"}}' "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues"` |
| Close | `gh issue close N --comment "reason"` | `glab issue close N` | `curl -X PUT -d '{"state":"resolved"}' ".../issues/N"` |
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
| Operation | GitHub (`gh`) | GitLab (`glab`) | Bitbucket (REST API) |
|-----------|---------------|-----------------|----------------------|
| View | `gh issue view N --json title,body,labels,assignees,comments` | `glab issue view N` | `curl -s "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues/N"` |
| List | `gh issue list --json number,title` | `glab issue list` | `curl -s "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues"` |
| Create | `gh issue create --title "T" --body "B"` | `glab issue create --title "T" --description "B"` | `curl -X POST -d '{"title":"T","content":{"raw":"B"}}' "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues"` |
| Close | `gh issue close N --comment "reason"` | `glab issue close N` | `curl -X PUT -d '{"state":"resolved"}' ".../issues/N"` |
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
| Operation | GitHub (`gh`) | GitLab (`glab`) | Bitbucket (REST API) |
|-----------|---------------|-----------------|----------------------|
| View | `gh issue view N --json title,body,labels,assignees,comments` | `glab issue view N` | `curl -s "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues/N"` |
| List | `gh issue list --json number,title` | `glab issue list` | `curl -s "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues"` |
| Create | `gh issue create --title "T" --body "B"` | `glab issue create --title "T" --description "B"` | `curl -X POST -d '{"title":"T","content":{"raw":"B"}}' "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues"` |
| Close | `gh issue close N --comment "reason"` | `glab issue close N` | `curl -X PUT -d '{"state":"resolved"}' ".../issues/N"` |
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
|-----------|---------------|-----------------|----------------------|
| View | `gh issue view N --json title,body,labels,assignees,comments` | `glab issue view N` | `curl -s "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues/N"` |
| List | `gh issue list --json number,title` | `glab issue list` | `curl -s "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues"` |
| Create | `gh issue create --title "T" --body "B"` | `glab issue create --title "T" --description "B"` | `curl -X POST -d '{"title":"T","content":{"raw":"B"}}' "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues"` |
| Close | `gh issue close N --comment "reason"` | `glab issue close N` | `curl -X PUT -d '{"state":"resolved"}' ".../issues/N"` |
| Comment | `gh issue comment N --body "msg"` | `glab issue note N --message "msg"` | `curl -X POST -d '{"content":{"raw":"msg"}}' ".../issues/N/comments"` |
| Search | `gh issue list --search "query"` | `glab issue list --search "query"` | N/A (filter client-side) |
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
|-----------|---------------|-----------------|----------------------|
| View | `gh issue view N --json title,body,labels,assignees,comments` | `glab issue view N` | `curl -s "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues/N"` |
| List | `gh issue list --json number,title` | `glab issue list` | `curl -s "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues"` |
| Create | `gh issue create --title "T" --body "B"` | `glab issue create --title "T" --description "B"` | `curl -X POST -d '{"title":"T","content":{"raw":"B"}}' "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues"` |
| Close | `gh issue close N --comment "reason"` | `glab issue close N` | `curl -X PUT -d '{"state":"resolved"}' ".../issues/N"` |
| Comment | `gh issue comment N --body "msg"` | `glab issue note N --message "msg"` | `curl -X POST -d '{"content":{"raw":"msg"}}' ".../issues/N/comments"` |
| Search | `gh issue list --search "query"` | `glab issue list --search "query"` | N/A (filter client-side) |
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
| View | `gh issue view N --json title,body,labels,assignees,comments` | `glab issue view N` | `curl -s "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues/N"` |
| List | `gh issue list --json number,title` | `glab issue list` | `curl -s "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues"` |
| Create | `gh issue create --title "T" --body "B"` | `glab issue create --title "T" --description "B"` | `curl -X POST -d '{"title":"T","content":{"raw":"B"}}' "https://api.bitbucket.org/2.0/repositories/OWNER/REPO/issues"` |
| Close | `gh issue close N --comment "reason"` | `glab issue close N` | `curl -X PUT -d '{"state":"resolved"}' ".../issues/N"` |
| Comment | `gh issue comment N --body "msg"` | `glab issue note N --message "msg"` | `curl -X POST -d '{"content":{"raw":"msg"}}' ".../issues/N/comments"` |
| Search | `gh issue list --search "query"` | `glab issue list --search "query"` | N/A (filter client-side) |
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Natural-Language Policy Violations

Low
Confidence
88% confidence
Finding
The instruction says to always say "merge request" instead of "pull request" in user-facing output whenever the platform is GitLab. This forces a terminology/locale style choice rather than offering flexibility based on user preference, which can be a natural-language policy concern.

Static analysis

No suspicious patterns detected.