Back to skill

Security audit

Github Repo Browser Read Only

Security checks for vulnerabilities and agentic risk

Overview

This skill coherently provides read-only GitHub repository browsing through AgentPMT, with optional user-directed downloads to external file storage that should be handled carefully.

Install and use this only if you are comfortable giving AgentPMT read access to the selected GitHub repositories. Prefer fine-grained read-only GitHub tokens, avoid broad private-repo access unless needed, use read actions before download actions, and treat any returned signed URL as sensitive. If following skills.sh setup commands, prefer pinned or verified versions where available.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:358
Finding

Unpinned Remote Skill Installation Creates a Supply-Chain Execution Risk

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 358-362
Vulnerability Type: Unpinned third-party package and remote skill installation
Risk Level: Medium

Vulnerable Code

bash
skills.sh install script:

npx skills add AgentPMT/agent-skills --skill what-is-agentpmt
npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup

Technical Analysis

The documented installation commands use npx skills without specifying an exact package version and retrieve skills from AgentPMT/agent-skills without pinning a commit SHA or immutable release. Consequently, the code installed and executed can differ from the content that was reviewed during this audit.

If the npm package, package publisher, source repository, or upstream account is compromised, a later invocation could retrieve attacker-controlled content. Depending on the behavior of the skills installer and the downloaded skills, this may involve package lifecycle scripts, installer code, or malicious skill instructions.

These commands are documentation rather than automatically executed code, so exploitation requires a user or agent to follow the installation instructions. This reduces immediacy but does not eliminate the supply-chain risk.

The separately flagged network behavior—using AgentPMT-hosted calls to access GitHub repositories—is consistent with the declared remote repository-browser functionality. The reviewed files instruct users not to expose account secrets and do not contain explicit credential-exfiltration logic. However, private repository content and metadata are necessarily processed through the AgentPMT service, so users must trust that service and should grant the connected GitHub token only the minimum read permissions required.

Attack Path

  1. An attacker compromises the npm package resolved by npx skills, its publisher account, the AgentPMT/agent-skills repository, or an upstream distribu ...[truncated 1477 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the skills npm package to an exact, reviewed version instead of allowing npx to resolve the latest release:

    bash
    npx --yes skills@<exact-reviewed-version> add AgentPMT/agent-skills --skill what-is-agentpmt
    
  2. Pin AgentPMT/agent-skills to an immutable commit SHA or cryptographically verified release tag if the installer supports repository references:

    bash
    npx --yes skills@<exact-reviewed-version> add AgentPMT/agent-skills@<full-commit-sha> --skill what-is-agentpmt
    
  3. Publish and verify checksums or signed provenance for downloaded skill artifacts. Fail installation if the digest or signature does not match the reviewed release.

  4. Use npm lockfiles and integrity metadata where applicable, and configure npm to use an approved registry.

  5. Avoid executing package lifecycle scripts unless they are explicitly required and reviewed. Run installation in a sandbox with restricted filesystem, environment, and network access.

  6. Document the exact expected publisher, version, commit SHA, and artifact digest so users can independently verify the dependency.

  7. Apply least privilege to the connected GitHub token. Prefer fine-grained, read-only access limited to explicitly selected repositories rather than account-wide private-repository access.

  8. Require explicit user confirmation before transmitting private repository content to AgentPMT storage or generating signed download URLs, and document retention, access-control, and deletion policies for stored repository data.

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

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The description advertises downloading files and repositories to storage with signed URLs, but it does not prominently warn that private repository contents may be copied to external file storage and made retrievable through signed links. In this skill's context, that omission is meaningful because the tool operates on private GitHub data, so users may underestimate the confidentiality and retention implications of invoking download actions.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The activation keywords are broad and repetitive, including generic phrases about browsing repos, reading files, searching code, and downloading content. In agentic environments this can cause the skill to be invoked in situations broader than the user intended, increasing the chance of unnecessary access to private repositories or unintended data export to storage.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

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

md
- What AgentPMT is: ../what-is-agentpmt (ClawHub: `what-is-agentpmt`, page: https://clawhub.ai/agentpmt/what-is-agentpmt; skills.sh: `npx skills add AgentPMT/agent-skills --skill what-is-agentpmt`)
- AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup (ClawHub: `agentpmt-account-mcp-rest-api-setup`, page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup; skills.sh: `npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup`)
- Marketplace product: https://www.agentpmt.com/marketplace/github-repo-browser-read-only
- AgentPMT main MCP server: https://api.agentpmt.com/mcp/
- AgentPMT REST invoke endpoint: https://api.agentpmt.com/products/purchase

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

md
- What AgentPMT is: ../what-is-agentpmt (ClawHub: `what-is-agentpmt`, page: https://clawhub.ai/agentpmt/what-is-agentpmt; skills.sh: `npx skills add AgentPMT/agent-skills --skill what-is-agentpmt`)
- AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup (ClawHub: `agentpmt-account-mcp-rest-api-setup`, page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup; skills.sh: `npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup`)
- Marketplace product: https://www.agentpmt.com/marketplace/github-repo-browser-read-only
- AgentPMT main MCP server: https://api.agentpmt.com/mcp/
- AgentPMT REST invoke endpoint: https://api.agentpmt.com/products/purchase

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The schema documents an action that downloads repository content into file storage and returns access information, but it does not explicitly warn that this is a write-to-storage operation that may persist sensitive private repository data and expose it through a signed URL. In a read-only GitHub browsing skill, this is especially risky because users or downstream agents may assume data is only viewed transiently, not copied into another storage domain.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This action description states that a file will be downloaded to storage and that a signed URL will be returned, but it lacks an explicit security warning about persisting potentially sensitive repository files outside GitHub and making them retrievable via link-based access. That gap can mislead agents into treating the operation like simple read access, increasing the chance of unintended exfiltration of private source code or secrets.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.