Back to skill

Security audit

Github Forker

Security checks for vulnerabilities and agentic risk

Overview

This skill mostly does what it says, but it automatically stars repositories and encourages persistent GitHub token storage, which are account-impacting behaviors users should review before installing.

Install only if you are comfortable giving the skill a GitHub token and having it star original repositories whenever it forks them. Prefer a least-privilege or short-lived token, avoid storing the token in shell startup files, and remove or require explicit consent for the automatic starring step before normal use.

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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Rogue AgentSelf-Modification, Session Persistence
Findings (18)

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

Scanner excerpt · README.md (reported line 35)May include surrounding context.

Ubuntu / Debian

bash
sudo apt update && sudo apt install curl -y

Windows — included in Windows 10/11. Or install via curl.se.

Credential Access

High
Category
Privilege Escalation
Confidence
90% confidence
Finding

The skill requires a GitHub personal access token with repo-related scope, which grants significant authority over the user's repositories and account actions. In combination with undocumented extra actions like starring and potential future scope creep, this creates a real risk of account misuse or overbroad access if the token is exposed or the skill behaves unexpectedly.

Content

Scanner excerpt · README.md (reported line 43)May include surrounding context.

2. GitHub Token

Generate a classic PAT with repo or public_repo scope: GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)

bash
# Set for current session

YARA rule 'backdoor_persistence': Backdoor persistence with malicious payloads (shell commands, SSH key injection, hidden root users) [malware]

High
Category
YARA Match
Confidence
75% confidence
Finding

YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).

Content

Scanner excerpt · README.md (reported line 51)May include surrounding context.

uded in Windows 10/11. Or install via curl.se.

2. GitHub Token

Generate a classic PAT with repo or public_repo scope: GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)

bash
# Set for current session
export GITHUB_TOKEN="ghp_..."

# Persist across sessions
echo 'export GITHUB_TOKEN="ghp_..."' >> ~/.zshrc   # zsh
echo 'export GITHUB_TOKEN="ghp_..."' >> ~/.bashrc  # bash

Usage

Just mention a GitHub repo and ask to fork it:

text
帮我 fork 这个:https://github.com/owner/repo
fork this: github.com/owner/repo
copy this repo to my account: https://github.com/owner/repo/tree/main/subdir

Works with truncated URLs from screenshots too:

text
fork git [image with github.com/owner/re...]

The skill will infer the full repo from context, fork it, and star the original automatically.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill's stated purpose is to fork repositories, but it also performs an additional side effect: automatically starring the original repository. That is an unrelated user-account action that can modify the user's public activity and preferences without explicit consent, creating a scope-creep and unauthorized-action risk.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

This section operationalizes the unjustified starring behavior by instructing the skill to call GitHub's star API after a successful fork. Because starring is not necessary to fulfill the user's request, it grants the skill excess capability and can manipulate endorsement signals or alter the user's account activity without authorization.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README states the skill will both fork repositories and automatically star the originals, which exceeds the declared fork-only purpose in the metadata. This creates an undocumented side effect on the user's GitHub account and can cause unauthorized engagement actions that the user did not explicitly request.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README omits any warning that the skill will automatically star repositories, despite this being an account-modifying action separate from the requested fork. In a GitHub automation context, undisclosed actions are more dangerous because they operate under the user's token and can alter reputation, activity, or audit trails without informed consent.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · README.md (reported line 35)May include surrounding context.

Ubuntu / Debian

bash
sudo apt update && sudo apt install curl -y

Windows — included in Windows 10/11. Or install via curl.se.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README advises persisting a GitHub personal access token in shell startup files, which can expose credentials through backups, dotfile syncing, shared accounts, shell history mistakes, or accidental publication. In a skill that performs authenticated API actions, token mishandling directly risks unauthorized access to the user's repositories and account activity.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The usage section explicitly says the skill will star the original repository automatically after inferring and forking it. This is a second confirmation of an undocumented account action, increasing the likelihood that users trigger behavior they did not intend and that maintainers normalized hidden side effects.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The manifest says the skill should not trigger for searching for repositories, but the instructions direct the agent to call GitHub's search API to identify likely matches from truncated repo references. Even if used as a recovery mechanism, this adds a repo-search capability outside the declared intent boundary.

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 54)May include surrounding context.

curl -s -L
-H "Authorization: Bearer $GITHUB_TOKEN"
-H "Accept: application/vnd.github+json"
"https://api.github.com/search/repositories?q={owner}/{partial}+in:full_name&per_page=5"

text
Use whatever partial info you have — owner + partial repo name is ideal; owner alone works too.

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 89)May include surrounding context.

curl -s -L
-H "Authorization: Bearer $GITHUB_TOKEN"
-H "Accept: application/vnd.github+json"
"https://api.github.com/search/repositories?q={owner}/{partial}+in:full_name&per_page=5"

text
Use whatever partial info you have — owner + partial repo name is ideal; owner alone works too.

Session Persistence

Medium
Category
Rogue Agent
Confidence
90% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

  • If GITHUB_TOKEN is not set, tell the user to set it and stop:
    bash
    export GITHUB_TOKEN="ghp_..."   # classic PAT (recommended)
    # To persist across sessions, add to ~/.zshrc or ~/.bash_profile
    
  • Fork requests are async on GitHub's side — a 202 response means "accepted", not "done".
  • If a repo is already forked, GitHub returns the existing fork (not an error) — that's fine.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill documentation fails to warn users that it will star repositories in addition to forking them. This omission undermines informed consent and makes the hidden side effect more dangerous, because users may authorize the skill expecting only a fork while it silently performs an additional account action.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

This external transmission is used for the unauthorized starring side effect, not the requested fork operation. Because it sends an authenticated action to GitHub that changes the user's account state for a non-essential purpose, it becomes dangerous in context even though the endpoint itself is legitimate.

Content

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

-H "Authorization: Bearer $GITHUB_TOKEN"
-H "Accept: application/vnd.github+json"
-H "X-GitHub-Api-Version: 2022-11-28"
https://api.github.com/user/starred/{owner}/{repo}

text

A 204 response means success. Star failures are non-fatal — if starring fails, note it in the

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The manifest focuses on detecting fork intent and extracting a repository reference from text or images. README line L09 adds a broader capability to resolve truncated repository URLs using GitHub search and inference, which introduces repository lookup behavior not stated in the manifest and is adjacent to the manifest's explicit exclusion of repo searching.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

One invocation example is written in Chinese, but the README does not clarify that multiple languages are supported or that Chinese is merely an example. Presenting a specific language without opt-in can create an avoidable language/locale policy concern in natural-language instructions.

Content

No source excerpt is available for this finding.