Back to skill

Security audit

GitCode API

Security checks for vulnerabilities and agentic risk

Overview

This GitCode API skill is a documentation-only integration, but it mixes read-only querying with write, admin, and unsafe token-handling guidance without enough safeguards.

Install only if you intend to use this as a broad GitCode API reference. Use a narrowly scoped read-only token by default, do not paste tokens into chat, do not put tokens in URLs, and require explicit confirmation before any POST, PUT, PATCH, DELETE, membership, webhook, settings, transfer, or deletion operation.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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 (3)

T09 · Insecure Skill Coding Practices

Error
Location
examples.md:245
Finding

Authenticated request helper can disclose the GitCode token to an arbitrary destination

Content
View full analysis
` without validating the destination. 5. Th ...[truncated 865 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:18
Finding

Token handling guidance encourages exposure through conversation text and URL query parameters

Content
View full analysis
Remediation
View remediation
` or `PRIVATE-TOKEN: `. 5. Add explicit instructions never to print, echo, persist, summarize, or include the token in generated URLs. 6. Redact token-like values from exceptions, HTTP diagnostics, traces, and audit logs. 7. Recommend narrowly scoped, read-only, short-lived credentials whenever the requested operation does not require mutation. 8. Provide token-revocation guidance for users who accidentally disclose a credential in conversation or logs. ]]>

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:3
Finding

Write, administrative, and destructive capabilities exceed the Skill's query-oriented declaration

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 (27)

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The collaborator-management example demonstrates a permission-changing operation that exceeds a read/query framing and can materially alter repository access. If used with a powerful token, it could grant access to unintended users or elevate privileges, making the capability significantly riskier than simple data retrieval.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The natural-language sections such as '何时使用' and the request/authentication guidance are written in Chinese only, which can force a specific language on users without opt-in. This matches the policy category for language or locale constraints because the file does not offer an alternative language or indicate that Chinese is optional.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The examples instruct use of an authentication token in outbound API requests but provide no warning about token sensitivity, storage, logging, or transmission risks. This can normalize unsafe handling of credentials and increase the likelihood that users paste high-privilege tokens into untrusted environments or expose them in logs.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 15)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 14)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 36)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 64)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 96)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 131)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 167)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 171)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 191)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 221)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 231)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 272)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 295)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 329)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 353)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · reference.md (reported line 38)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · reference.md (reported line 342)May include surrounding context.

md
owner = "OWNER"
repo = "REPO"

url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}"
response = requests.get(url, headers={'PRIVATE-TOKEN': token})

if response.status_code == 200:

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The examples include state-changing operations such as creating issues and pull requests even though the skill is described primarily as 'fetch and query data'. This mismatch can mislead users or downstream agents into granting broader trust or permissions than expected, increasing the chance of unintended writes to external repositories.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The markdown includes examples for creating issues, pull requests, and later adding collaborators without explicit warnings that these operations modify remote state. Users may treat examples as harmless reads and accidentally trigger repository changes, approvals, or access modifications.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 105)May include surrounding context.

md
"assignee": "username"
}

response = requests.post(
    url,
    headers={'PRIVATE-TOKEN': token, 'Content-Type': 'application/json'},
    json=data

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 139)May include surrounding context.

md
"assignee": "username"
}

response = requests.post(
    url,
    headers={'PRIVATE-TOKEN': token, 'Content-Type': 'application/json'},
    json=data

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples.md (reported line 356)May include surrounding context.

md
url = f"https://api.gitcode.com/api/v5/repos/{owner}/{repo}/collaborators/{username}"
data = {"role_id": role_id}

response = requests.put(
    url,
    headers={'PRIVATE-TOKEN': token, 'Content-Type': 'application/json'},
    json=data

Static analysis

No suspicious patterns detected.