Back to skill

Security audit

GitHub Issue Writer

Security checks for vulnerabilities and agentic risk

Overview

The skill drafts GitHub issues and requires user review and confirmation before publishing them.

Review the destination repository, its visibility, and the complete issue before approving publication; remove sensitive logs and credentials. Drafting needs no GitHub access. If using the Python fallback, its missing re import needs correction. No submission was executed during this review.

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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
3. **What happened / what's wanted?** (the raw description, error, or idea)
4. **Optional:** Labels, assignee, milestone, environment details

If the user gives you enough context, proceed without asking — draft and show for confirmation.

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 176)May include surrounding context.

md
> **Prerequisites for submission:**
> - `gh` CLI (authenticated via `gh auth login`) — preferred path
> - `GH_TOKEN` env var — required for the curl API fallback
> - `git` — used to detect the repo from `git remote get-url origin`
>
> Drafting (Steps 1–5) works without any of these.

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

md
curl -s -X POST \
  -H "Authorization: Bearer $GH_TOKEN" \
  -H "Accept: application/vnd.github+json" \
  https://api.github.com/repos/{owner}/{repo}/issues \
  -d '{
    "title": "<title>",
    "body": "<body>",

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

bash
# WRONG - hand-written JSON with interpolated values
curl -s -X POST "https://api.github.com/repos/OWNER/REPO/issues" \
  -H "Authorization: Bearer $GH_TOKEN" \
  -d '{"title": "<title>", "body": "<body>"}'

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

md
body = f.read()
payload = json.dumps({"title": title, "body": body}).encode()
req = urllib.request.Request(
    f"https://api.github.com/repos/{owner}/{repo}/issues",
    data=payload,
    headers={"Authorization": f"Bearer {os.environ['GH_TOKEN']}",
             "Accept": "application/vnd.github+json",

The activation description includes a broad catch-all for anyone who describes a problem that needs tracking.

Low
Category
Trigger Abuse
Confidence
94% confidence
Finding

The condition "or describes a problem that needs to be tracked" does not require an intent to draft a GitHub issue. It could activate the skill during general troubleshooting or task planning, despite the more specific trigger phrases preceding it.

Content

No source excerpt is available for this finding.